DefaultAuthenticationEventHandler 委托

定义

表示处理 DefaultAuthenticationModule 的 DefaultAuthentication_OnAuthenticate 事件的方法

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

事件源。

示例

下面的代码示例使用 DefaultAuthentication_OnAuthenticate 事件来测试当前 HttpContext 的 属性是否Usernull。 如果 属性为 null,则示例将当前 HttpContext 的 属性设置为 UserGenericPrincipal 对象,其中 IdentityGenericPrincipal 对象的 是值为GenericIdentityName“default”的 。

注意

DefaultAuthentication_OnAuthenticate 事件在 AuthorizeRequest 事件之前引发。 因此,如果将当前 HttpContext 的 属性设置为User自定义标识,则可能会影响应用程序的行为。 例如,如果您使用的是 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

注解

委托 DefaultAuthenticationEventHandler 是为 Authenticate 类的 DefaultAuthenticationModule 事件定义的。 可以通过在 global.asax 文件中为 ASP.NET 应用程序指定名为 DefaultAuthentication_OnAuthenticate 的子例程来访问 Authenticate 类的 事件。DefaultAuthenticationModule 事件Authenticate在 事件之后AuthenticateRequest引发,用于确保User使用 对象填充IPrincipal当前 HttpContext 的 属性。

可以使用Context提供给 DefaultAuthentication_OnAuthenticate 事件的 对象的 属性DefaultAuthenticationEventArgs将当前 HttpContext 的 属性设置为User自定义IPrincipal对象。 如果不为User在 DefaultAuthentication_OnAuthenticate 事件期间提供的 的 HttpContext 属性指定值, 会将 DefaultAuthenticationModuleUserHttpContext 属性设置为GenericPrincipal不包含用户信息的 对象。

DefaultAuthentication_OnAuthenticate 事件在 AuthenticateRequest 事件之后和 事件之前AuthorizeRequest引发。 如果某个 authorization 部分依赖于用户名来拒绝或允许访问应用程序,则修改 User 当前 HttpContext 的 属性可能会影响应用程序的行为。 在配置中指定 authorization 节时,请确保考虑在 DefaultAuthentication_OnAuthenticate 事件期间设置的用户名。

扩展方法

GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。

适用于