DefaultAuthenticationModule.Authenticate Событие

Определение

Происходит после проверки подлинности запроса.

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 

Тип события

Примеры

В следующем примере кода событие DefaultAuthentication_OnAuthenticate используется для проверки того, User имеет ли свойство текущего HttpContext экземпляра значение null. User Если свойство имеет значение null, то в примере свойству User текущего HttpContext экземпляра GenericPrincipal присваивается объект , где IdentityGenericPrincipal объект является GenericIdentity объектом со значением Name "default".

Примечание

Событие DefaultAuthentication_OnAuthenticate возникает перед событием AuthorizeRequest . В результате, если задать User для свойства текущего HttpContext экземпляра пользовательское удостоверение, это может повлиять на поведение приложения. Например, если вы используете FormsAuthentication класс и укажете <deny users="?" /> в разделе конфигурации авторизации , чтобы убедиться, что доступ к сайту имеют только пользователи, прошедшие проверку подлинности, этот пример приведет к тому, что элемент deny будет игнорироваться, так как у пользователя будет имя " по умолчанию". Вместо этого необходимо указать <deny users="default" /> , чтобы доступ к сайту могли получить только пользователи, прошедшие проверку подлинности.

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

Комментарии

Событие Authenticate возникает после AuthenticateRequest события . Он используется для заполнения User свойства текущего HttpContext экземпляра IPrincipal объектом .

Чтобы получить доступ к Authenticate событию класса , DefaultAuthenticationModule укажите подпрограмму с именем DefaultAuthentication_OnAuthenticate в файле Global.asax приложения.

Вы можете использовать Context свойство DefaultAuthenticationEventArgs объекта в событии DefaultAuthentication_OnAuthenticate , чтобы задать свойству User текущего HttpContext экземпляра пользовательский IPrincipal объект. Если значение свойства User не указано, свойство экземпляра GenericPrincipalDefaultAuthenticationModuleHttpContext присваивает User объекту, который не содержит сведений о пользователе.

Событие DefaultAuthentication_OnAuthenticate возникает после AuthenticateRequest события и перед событием AuthorizeRequest . Если у вас есть authorization раздел, который зависит от имени пользователя, чтобы запретить или разрешить доступ к приложению, изменение User свойства текущего HttpContext экземпляра может повлиять на поведение приложения. Убедитесь, что имя пользователя, заданное во время события DefaultAuthentication_OnAuthenticate , учитывается при указании раздела авторизации в конфигурации.

Примечание

Если веб-приложение выполняется в iis 7.0 в интегрированном режиме Authenticate , событие DefaultAuthenticationModule объекта не вызывается. mode Если для атрибута элемента конфигурации проверки подлинности задано значение None и приложение подписывается Authenticate на событие, PlatformNotSupportedException возникает ошибка. В этом сценарии, чтобы получить уведомление о проверке подлинности, подпишитесь на AuthenticateRequest событие экземпляра HttpApplication . Дополнительные сведения о проблемах совместимости в режиме интеграции см. в статье Перемещение приложения ASP.NET с IIS 6.0 на IIS 7.0.

Применяется к

См. также раздел