DefaultAuthenticationModule.Authenticate Esemény

Definíció

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.

A következőre érvényes:

Lásd még