DefaultAuthenticationModule.Authenticate Esemény
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A kérelem hitelesítése után következik be.
public:
event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler
Public Custom Event Authenticate As DefaultAuthenticationEventHandler
Eseménytípus
Példák
Az alábbi példakód a DefaultAuthentication_OnAuthenticate eseményt használja annak ellenőrzésére, hogy az User aktuális HttpContext példány tulajdonsága.null Ha a User tulajdonság aznull, akkor a minta az User aktuális HttpContext példány tulajdonságát egy GenericPrincipal olyan objektumra állítja, amelyben az IdentityGenericPrincipal objektum GenericIdentityName értéke "alapértelmezett".
Note
A DefaultAuthentication_OnAuthenticate esemény az AuthorizeRequest esemény előtt lesz előállítva. Ennek eredményeképpen, ha az User aktuális HttpContext példány tulajdonságát egyéni identitásra állítja be, az hatással lehet az alkalmazás viselkedésére. Ha például az FormsAuthentication osztályt használja, és az <deny users="?" /> konfigurációs szakaszban megadja, hogy csak hitelesített felhasználók férhessenek hozzá a webhelyhez, ez a minta figyelmen kívül hagyja a megtagadási elemet, mivel a felhasználónak lesz egy neve, amely "alapértelmezett". Ehelyett azt kell megadnia<deny users="default" />, hogy csak hitelesített felhasználók férhessenek hozzá a webhelyhez.
public void DefaultAuthentication_OnAuthenticate(object sender,
DefaultAuthenticationEventArgs args)
{
if (args.Context.User == null)
args.Context.User =
new System.Security.Principal.GenericPrincipal(
new System.Security.Principal.GenericIdentity("default"),
new String[0]);
}
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _
args As DefaultAuthenticationEventArgs)
If args.Context.User Is Nothing Then
args.Context.User = _
new System.Security.Principal.GenericPrincipal( _
new System.Security.Principal.GenericIdentity("default"), _
new String(0) {})
End If
End Sub
Megjegyzések
Az Authenticate esemény az esemény után AuthenticateRequest lesz előállítva. Ezzel biztosítható, hogy az User aktuális HttpContext példány tulajdonsága egy IPrincipal objektummal legyen feltöltve.
Az osztály eseményét úgy Authenticate érheti elDefaultAuthenticationModule, hogy megad egy DefaultAuthentication_OnAuthenticate nevű alrutint az alkalmazás Global.asax fájljában.
Context A DefaultAuthenticationEventArgs esemény objektumtulajdonságával egyéni objektummá User állíthatja HttpContext az aktuális IPrincipal példány tulajdonságát. Ha nem ad meg értéket a User tulajdonsághoz, a DefaultAuthenticationModule példány tulajdonságát User egy HttpContext olyan objektumra állítja, GenericPrincipal amely nem tartalmaz felhasználói adatokat.
A DefaultAuthentication_OnAuthenticate esemény az AuthenticateRequest esemény után és az AuthorizeRequest esemény előtt lesz előállítva. Ha olyan szakasza van authorization , amely attól függ, hogy a felhasználónév megtagadja vagy engedélyezi az alkalmazáshoz való hozzáférést, az User aktuális HttpContext példány tulajdonságának módosítása hatással lehet az alkalmazás viselkedésére. Győződjön meg arról, hogy a DefaultAuthentication_OnAuthenticate esemény során beállított felhasználónevet figyelembe veszi a konfiguráció engedélyezési szakaszának megadásakor.
Note
Ha a webalkalmazás integrált módban fut az IIS 7.0-s verziójában, a rendszer nem indítja el az AuthenticateDefaultAuthenticationModule eseményt. Ha a modehitelesítési konfigurációs elem attribútuma "Nincs" értékre van állítva, és az alkalmazás előfizet az Authenticate eseményre, PlatformNotSupportedException hibaüzenet jelenik meg. Ebben az esetben a hitelesítési értesítés fogadásához iratkozzon fel a AuthenticateRequestHttpApplication példány eseményére. Az integrált módban előforduló kompatibilitási problémákról további információt a Az ASP.NET-alkalmazások IIS 6.0-ról IIS 7.0-ra történő csatlakoztatása című témakörben talál.