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


DefaultAuthenticationEventArgs(HttpContext) Конструктор

Определение

Инициализирует новый экземпляр класса DefaultAuthenticationEventArgs.

public:
 DefaultAuthenticationEventArgs(System::Web::HttpContext ^ context);
public DefaultAuthenticationEventArgs(System.Web.HttpContext context);
new System.Web.Security.DefaultAuthenticationEventArgs : System.Web.HttpContext -> System.Web.Security.DefaultAuthenticationEventArgs
Public Sub New (context As HttpContext)

Параметры

context
HttpContext

Контекст события.

Примеры

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

Замечание

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

Комментарии

Объект DefaultAuthenticationModule создает DefaultAuthenticationEventArgs объект с помощью текущего HttpContext и передает его в событие DefaultAuthentication_OnAuthenticate .

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

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

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

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