DefaultAuthenticationModule.Authenticate Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyvolá se po ověření požadavku.
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
Event Type
Příklady
Následující příklad kódu používá událost DefaultAuthentication_OnAuthenticate k otestování, zda User je null
vlastnost aktuální HttpContext instance .
User Pokud je null
vlastnost , pak ukázka nastaví User vlastnost aktuální HttpContext instance na GenericPrincipal objekt, kde Identity hodnota objektu GenericPrincipal je GenericIdentity s Name hodnotou "default".
Poznámka
Událost DefaultAuthentication_OnAuthenticate je vyvolána před událostí AuthorizeRequest . V důsledku toho, pokud nastavíte User vlastnost aktuální HttpContext instance na vlastní identitu, může to ovlivnit chování vaší aplikace. Pokud například používáte FormsAuthentication třídu a v části konfigurace autorizace zadáte<deny users="?" />
, abyste zajistili, že přístup k vašemu webu budou mít jenom ověření uživatelé, tato ukázka způsobí ignorování elementu deny, protože uživatel bude mít název, který je "výchozí". Místo toho byste zadali<deny users="default" />
, aby k webu měli přístup jenom ověření uživatelé.
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
Poznámky
Událost Authenticate je vyvolána po události AuthenticateRequest . Slouží k zajištění, aby User vlastnost aktuální HttpContext instance byla naplněna objektem IPrincipal .
K události DefaultAuthenticationModule třídy můžete získat přístup Authenticate zadáním podprogramu s názvem DefaultAuthentication_OnAuthenticate v souboru Global.asax aplikace.
Vlastnost objektu DefaultAuthenticationEventArgs v události DefaultAuthentication_OnAuthenticate můžete použít Context k nastavení User vlastnosti aktuální HttpContext instance na vlastní IPrincipal objekt. Pokud nezadáte hodnotu vlastnosti User , DefaultAuthenticationModule nastaví User vlastnost HttpContext instance na GenericPrincipal objekt, který neobsahuje žádné informace o uživateli.
Událost DefaultAuthentication_OnAuthenticate je vyvolána po události AuthenticateRequest a před událostí AuthorizeRequest . Pokud máte authorization
oddíl, který závisí na uživatelském jménu pro odepření nebo povolení přístupu k aplikaci, může úprava User vlastnosti aktuální HttpContext instance ovlivnit chování aplikace. Ujistěte se, že uživatelské jméno, které nastavíte během události DefaultAuthentication_OnAuthenticate , je při zadávání oddílu autorizace v konfiguraci zohledněno.
Poznámka
Pokud je webová aplikace spuštěna ve službě IIS 7.0 v integrovaném Authenticate režimu, není vyvolána událost DefaultAuthenticationModule .
mode
Pokud je atribut elementu konfigurace ověřování nastaven na hodnotu None a aplikace se přihlásí k odběru Authenticate události, PlatformNotSupportedException dojde k chybě. Pokud chcete v tomto scénáři dostávat oznámení o ověření, přihlaste se k odběru AuthenticateRequestHttpApplication události instance. Další informace o problémech s kompatibilitou v integrovaném režimu najdete v tématu Přesunutí aplikace ASP.NET ze služby IIS 6.0 do služby IIS 7.0.