DefaultAuthenticationModule.Authenticate Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre depois que a solicitação foi autenticada.
public:
event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler
Public Custom Event Authenticate As DefaultAuthenticationEventHandler
Tipo de evento
Exemplos
O exemplo de código a seguir usa o evento DefaultAuthentication_OnAuthenticate para testar se a User propriedade da instância atual HttpContext é null
. Se a User propriedade for null
, o exemplo definirá a User propriedade da instância atual HttpContext como um GenericPrincipal objeto em que o IdentityGenericPrincipal do objeto é um GenericIdentity com um Name valor de "default".
Observação
O evento DefaultAuthentication_OnAuthenticate é gerado antes do AuthorizeRequest evento. Como resultado, se você definir a User propriedade da instância atual HttpContext como uma identidade personalizada, ela poderá afetar o comportamento do aplicativo. Por exemplo, se você estiver usando a FormsAuthentication classe e especificar <deny users="?" />
na seção de configuração de autorização para garantir que apenas usuários autenticados tenham acesso ao seu site, este exemplo fará com que o elemento deny seja ignorado, pois o usuário terá um nome, que é "padrão". Em vez disso, você especificaria <deny users="default" />
para garantir que somente usuários autenticados possam acessar seu site.
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
Comentários
O Authenticate evento é gerado após o AuthenticateRequest evento. Ele é usado para garantir que a User propriedade da instância atual HttpContext seja preenchida com um IPrincipal objeto .
Você pode acessar o Authenticate evento da DefaultAuthenticationModule classe especificando uma sub-rotina chamada DefaultAuthentication_OnAuthenticate no arquivo Global.asax do aplicativo.
Você pode usar a Context propriedade do DefaultAuthenticationEventArgs objeto no evento DefaultAuthentication_OnAuthenticate para definir a User propriedade da instância atual HttpContext como um objeto personalizado IPrincipal . Se você não especificar um valor para a User propriedade , o DefaultAuthenticationModule definirá a User propriedade da HttpContext instância como um GenericPrincipal objeto que não contém informações do usuário.
O evento DefaultAuthentication_OnAuthenticate é gerado após o AuthenticateRequest evento e antes do AuthorizeRequest evento. Se você tiver uma authorization
seção que depende do nome de usuário para negar ou permitir o acesso ao seu aplicativo, modificar a User propriedade da instância atual HttpContext poderá afetar o comportamento do aplicativo. Certifique-se de que o nome de usuário definido durante o evento DefaultAuthentication_OnAuthenticate seja considerado quando você especificar a seção de autorização em sua configuração.
Observação
Se o aplicativo Web estiver em execução no IIS 7.0 no modo Integrado, o Authenticate evento do DefaultAuthenticationModule não será gerado. Se o mode
atributo do elemento de configuração de autenticação estiver definido como "Nenhum" e o aplicativo assinar o Authenticate evento, um PlatformNotSupportedException erro será gerado. Nesse cenário, para receber a notificação de autenticação, assine o AuthenticateRequest evento da HttpApplication instância. Para obter mais informações sobre problemas de compatibilidade no modo Integrado, consulte Movendo um aplicativo ASP.NET do IIS 6.0 para o IIS 7.0.