DefaultAuthenticationModule 类

定义

确保上下文中存在身份验证对象。 此类不能被继承。

public ref class DefaultAuthenticationModule sealed : System::Web::IHttpModule
public sealed class DefaultAuthenticationModule : System.Web.IHttpModule
type DefaultAuthenticationModule = class
    interface IHttpModule
Public NotInheritable Class DefaultAuthenticationModule
Implements IHttpModule
继承
DefaultAuthenticationModule
实现

示例

以下示例使用 DefaultAuthentication_OnAuthenticate 事件来测试当前HttpContext实例的 属性是否UsernullUser如果 属性为 null,则示例将当前HttpContext实例的 属性设置为User一个 GenericPrincipal 对象,GenericPrincipal其中 Identity 对象的 是值为GenericIdentityName“default”的 。

注意

DefaultAuthentication_OnAuthenticate 事件在事件之前AuthorizeRequest引发。 因此,如果将当前HttpContext实例的 属性设置为User自定义标识,可能会影响应用程序的行为。 例如,如果使用 FormsAuthentication 类并在授权配置部分中指定<deny users="?" />,以确保只有经过身份验证的用户有权访问您的网站,则此示例将导致拒绝元素被忽略,因为用户将具有一个名称,即“默认值”。相反,应指定 <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

注解

确保DefaultAuthenticationModuleUser将当前HttpContext实例的 属性设置为每个请求的 对象IPrincipal。 在 DefaultAuthenticationModule 事件之后AuthenticateRequest和 事件之前AuthorizeRequest检查 User 属性。 User如果 属性为 null,则DefaultAuthenticationModuleUser 属性设置为GenericPrincipal不包含用户信息的对象。

如果身份验证模块将 StatusCode 属性设置为 401, DefaultAuthenticationModule 则会呈现拒绝访问的错误页。 如果 属性的值 StatusCode 设置为大于 200 的值,则 DefaultAuthenticationModule 对象将结束请求。 在这种情况下,仅在当前请求完成之前调用订阅 EndRequest 事件的 HTTP 模块。

公开 DefaultAuthenticationModule 事件 Authenticate 。 可以使用此事件为User当前HttpContext实例的 属性提供自定义IPrincipal对象。 通过在 Authenticate 应用程序的 Global.asax 文件中指定名为 DefaultAuthentication_OnAuthenticate 的事件来访问该事件。

构造函数

DefaultAuthenticationModule()

初始化 DefaultAuthenticationModule 类的新实例。

方法

Dispose()

释放 DefaultAuthenticationModule 使用的所有资源,内存除外。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Init(HttpApplication)

初始化 DefaultAuthenticationModule 对象。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

事件

Authenticate

对请求进行身份验证后发生。

适用于

另请参阅