Поделиться через


DefaultAuthenticationEventHandler Делегат

Определение

Представляет метод, обрабатывающий событие DefaultAuthentication_OnAuthenticate класса DefaultAuthenticationModule.

public delegate void DefaultAuthenticationEventHandler(System::Object ^ sender, DefaultAuthenticationEventArgs ^ e);
public delegate void DefaultAuthenticationEventHandler(object sender, DefaultAuthenticationEventArgs e);
type DefaultAuthenticationEventHandler = delegate of obj * DefaultAuthenticationEventArgs -> unit
Public Delegate Sub DefaultAuthenticationEventHandler(sender As Object, e As DefaultAuthenticationEventArgs)

Параметры

sender
Object

Источник события.

e
DefaultAuthenticationEventArgs

Объект DefaultAuthenticationEventArgs, содержащий данные события.

Примеры

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

Примечание

Событие DefaultAuthentication_OnAuthenticate возникает перед событием AuthorizeRequest . В результате, если для свойства текущего HttpContext объекта задано User пользовательское удостоверение, это может повлиять на поведение приложения. Например, если вы используете FormsAuthentication класс и гарантируете, что только пользователи, прошедшие проверку подлинности, имеют доступ к сайту, используя authorization раздел и указав <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

Комментарии

Делегат DefaultAuthenticationEventHandler определяется для Authenticate события DefaultAuthenticationModule класса . Чтобы получить доступ к Authenticate событию класса , DefaultAuthenticationModule укажите подпрограмму с именем DefaultAuthentication_OnAuthenticate в файле Global.asax для приложения ASP.NET. Событие Authenticate возникает после AuthenticateRequest события и используется для заполнения UserIPrincipal свойства текущего HttpContext объекта объектом .

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

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

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.

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