DefaultAuthenticationModule.Authenticate Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje po uwierzytelnieniu żądania.
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
Typ zdarzenia
Przykłady
Poniższy przykład kodu używa zdarzenia DefaultAuthentication_OnAuthenticate do testowania, czy User właściwość bieżącego HttpContext wystąpienia to null
. Jeśli właściwość ma null
wartość , próbka User ustawia User właściwość bieżącego HttpContext wystąpienia na GenericPrincipal obiekt, w którym IdentityGenericPrincipal obiekt jest GenericIdentity wartością Name "default".
Uwaga
Zdarzenie DefaultAuthentication_OnAuthenticate jest zgłaszane przed zdarzeniem AuthorizeRequest . W związku z tym jeśli właściwość bieżącego HttpContext wystąpienia zostanie ustawiona User na tożsamość niestandardową, może to mieć wpływ na zachowanie aplikacji. Jeśli na przykład używasz FormsAuthentication klasy i określisz <deny users="?" />
w sekcji konfiguracji autoryzacji , aby upewnić się, że tylko uwierzytelnieni użytkownicy mają dostęp do witryny, ten przykład spowoduje zignorowanie elementu odmowy , ponieważ użytkownik będzie miał nazwę "domyślną". Zamiast tego należy określić <deny users="default" />
, aby upewnić się, że tylko uwierzytelnieni użytkownicy mogą uzyskiwać dostęp do witryny.
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
Uwagi
Zdarzenie Authenticate jest zgłaszane po zdarzeniu AuthenticateRequest . Służy do zapewnienia, że User właściwość bieżącego HttpContext wystąpienia jest wypełniana obiektem IPrincipal .
Możesz uzyskać dostęp do Authenticate zdarzenia DefaultAuthenticationModule klasy, określając podprotynę o nazwie DefaultAuthentication_OnAuthenticate w pliku Global.asax aplikacji.
Można użyć Context właściwości DefaultAuthenticationEventArgs obiektu w zdarzeniu DefaultAuthentication_OnAuthenticate , aby ustawić User właściwość bieżącego HttpContext wystąpienia na obiekt niestandardowy IPrincipal . Jeśli nie określisz wartości właściwości User , DefaultAuthenticationModule ustawia User właściwość HttpContext wystąpienia na GenericPrincipal obiekt, który nie zawiera informacji o użytkowniku.
Zdarzenie DefaultAuthentication_OnAuthenticate jest zgłaszane po AuthenticateRequest zdarzeniu i przed zdarzeniem AuthorizeRequest . Jeśli masz sekcję authorization
, która zależy od nazwy użytkownika, aby odmówić lub zezwolić na dostęp do aplikacji, modyfikowanie User właściwości bieżącego HttpContext wystąpienia może mieć wpływ na zachowanie aplikacji. Upewnij się, że nazwa użytkownika ustawiona podczas zdarzenia DefaultAuthentication_OnAuthenticate jest uwzględniana podczas określania sekcji autoryzacji w konfiguracji.
Uwaga
Jeśli aplikacja internetowa jest uruchomiona w usługach IIS 7.0 w trybie zintegrowanym, Authenticate zdarzenie DefaultAuthenticationModule nie zostanie podniesione.
mode
Jeśli atrybut elementu konfiguracji uwierzytelniania jest ustawiony na wartość "Brak", a aplikacja subskrybuje Authenticate zdarzenie, PlatformNotSupportedException zostanie zgłoszony błąd. W tym scenariuszu, aby otrzymywać powiadomienie o uwierzytelnieniu, subskrybuj AuthenticateRequest zdarzenie wystąpienia HttpApplication . Aby uzyskać więcej informacji na temat problemów ze zgodnością w trybie zintegrowanym, zobacz Przenoszenie aplikacji ASP.NET z usług IIS 6.0 do usług IIS 7.0.