asp.net former autentificering med roller

, udgør autentificering ikke tillader roller godkendelse.denne artikel beskriver, hvordan til at gennemføre det.grundlæggende former autentificering, er baseret på autentifikation i asp.net er ganske nyttigt.i stedet for at skrive vores egne autentificering processer, vi blot kan ændre web.config under system.web som så...,,, < autentificering mode = "former" />, < former, navn = "mywebsitecookiename", loginurl = "/adgangskode. aspx" beskyttelse = "alle", "timeout" = = "180" />, < /autentifikation >,,, autentificering tilstand er sat til former. en url, der er så asp.net ved at omdirigere de mennesker, som har brug for til at logge ind. en timeout er anført i protokollen.det er "tid siden sidste anmodning" ikke "tid siden login".hvis et login er indiceret til at være persistent (der omtales senere) dette ignoreres. en beskyttelse, der er fastsat for en metode., næste, jeg ønskede at præcisere en mappe, hvortil adgangen er begrænset til personer, der har logget ind.for at gøre det, jeg kom efter kode i web.config fil (under < konfiguration >).,,, < placering sti = "kolleger" >, < system. web >, < autorisation >, < nægter brugere = "?"/>, < /tilladelse >, < /system. web >, < /placering >, det fortæller asp.net, at vejen "/medlemmer" (bly /er altid implicit) bør nægte adgang til alle ukendte brugere.når nogen forsøger at skaffe sig adgang til en side i /medlemmer de i stedet vil blive omdirigeret til login.aspx url -, der er specificeret i spind. ud. det login.aspx form bør bede om hvad du vil (brugernavn og password valgs prøvelse for eksempel) og validere dem.når de er blevet valideret, du behøver kun at udføre følgende kode for brugeren omdirigeret til side oprindeligt blev de forsøger at få adgang til...,,,. net. formsauthentication. redirectfromloginpage (brugeridentifikation, falske);,,, brugeridentifikation er den entydige identifikator for den pågældende bruger (brugernavn), og den anden boolean parameter angiver, om det skal være en vedvarende sikkerhed - eller midlertidig (med udløbet siden sidste side anmodning), som som tidligere nævnt, roller, det var på det tidspunkt, at jeg indså, at jeg havde brug for en særlig /admin mappe.denne folder vil kun blive brugt af administratorer og ikke almindelige brugere.for det er jeg naturligvis nødvendige roller i web.config (under < konfiguration >), som så...,,, < placering sti = "administration" >, < system. web >, < autorisation >, < give roller = "administration" />, < nægter brugere = "*" />, <. /tilladelse >, < /system. web >,, < /placering >,, note: rækkefølgen for de tillade /benægte, er vigtigt.hvis du nægter * (alle brugere), før de lader den administrative rolle, er der ingen, der vil have adgang til den mappe,.,,, problemet er, at du får kun roller, når stadfæstelsen mode = "vinduer".for denne transportform alle brugerbehov gyldige vinduer brugerkonto på serveren.ikke en god løsning. heldigvis har jeg fundet en interessant artikel i msdn.når du giver din bruger i login.aspx form, så bør man finde ud af, hvilke roller de bruger tilhører...,,, hvis forfatter. isadministrator), roller = nye snor [] ("administration", "medlem"}, andre roller = ny serie [] ("medlem"}; //1 time glidende udløbet, cache. der tilsættes (author.uniqueid, roller, nul, datetime. maxvalue,, tidsrum. fromhours (1), cacheitempriority.belownormal, nul),,, jeg har skabt en snor vifte med de roller, som brugeren har.det er så oplagres i anvendelse [] indsamling af tekniske årsager, for ellers ville vi have en db adgang hver gang, vi ønskede at opnå denne brugers rolle. nu, fordi former autentificering har intet begreb om roller disse roller vil aldrig gå med til den øjeblikkelige bruger er cookie.så vi må bestemme, hvad disse roller er hver gang en godkendelse er blevet henrettet.til det formål har vi brug for at gå i global.asax fil.,,, beskyttede tomrum application_authenticaterequest (imod afsender, eventargs e), (hvis (httpcontext.current.user!= nul), (hvis (httpcontext.current.user.identity.authenticationtype!= "former"), smid nye undtagelse ("kun udgør autentificering støttes, ikke" +, httpcontext. nuværende. bruger. identitet. authenticationtype);,, system.security.principal.iidentity brugeridentifikation =, httpcontext. nuværende. bruger. identitet; //har vi nogle roller at hente?så i stedet for brugeren genstand, hvis anvendelse [brugeridentifikation. navn].= nul), httpcontext.current.user = nye system. de vigtigste. genericprincipal (brugeridentifikation, (string [...]), cache [brugeridentifikation. navn]), //bruger.= null,,, rutinemæssig kontrol, at den nuværende bruger!= ugyldige.det betyder, at side i et beskyttet sted.hvis dette er tilfældet, så bruger vi den brugeridentifikation som nøglen til cache [] samling for at finde en liste over roller.hvis disse roller er så vi forflytter de nuværende brugere med et objekt, skaber vi os et objekt, der indeholder en liste over roller., konklusion for asp netto udvikling rolle baseret sikkerhed er meget nyttig i web - applikationer.med et par enkle linjer kode, det er muligt at gennemføre rolle baseret sikkerhed for brugerne uden gyldige vinduer adgangskode.



Previous:
Next Page: