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 используется для проверки того, User равно null
ли свойство текущего HttpContext объекта . Если свойство имеет значение null
, в примере свойству User текущего HttpContext присваивается объект , GenericPrincipal где Identity свойство GenericPrincipal объекта является GenericIdentity объектом со значением Name свойства default.
Примечание
Событие DefaultAuthentication_OnAuthenticate возникает перед событием AuthorizeRequest . В результате, если задать User для свойства текущего HttpContext идентификатора пользовательское удостоверение, это может повлиять на поведение приложения. Например, если вы используете FormsAuthentication класс и гарантируете, что только пользователи, прошедшие проверку подлинности, имеют доступ к сайту, используя authorization
раздел и указав <deny users="?" />
, элемент в этом примере будет deny
игнорироваться, так как у пользователя будет имя " default". Вместо этого необходимо указать <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 .
Можно использовать Context свойство объекта, предоставленного DefaultAuthenticationEventArgs событию DefaultAuthentication_OnAuthenticate , чтобы задать свойству User текущего HttpContext объекта пользовательский IPrincipal объект. Если не указать значение для User свойства объекта , HttpContext на который ссылается Context свойство , DefaultAuthenticationModule то присваивает User свойству HttpContextGenericPrincipal объекта значение объекта , который не содержит сведений о пользователе.
Событие DefaultAuthentication_OnAuthenticate возникает после AuthenticateRequest события и перед событием AuthorizeRequest . Если у вас есть authorization
раздел, который зависит от имени пользователя, чтобы запретить или разрешить доступ к приложению, изменение User свойства текущего HttpContext может повлиять на поведение приложения. Убедитесь, что имя пользователя, заданное во время события DefaultAuthentication_OnAuthenticate , учитывается при указании authorization
раздела в конфигурации.