DefaultAuthenticationModule.Authenticate Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre depois de o pedido ter sido autenticado.
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 seguinte utiliza o evento DefaultAuthentication_OnAuthenticate para testar se a User propriedade da instância atual HttpContext é null. Se a User propriedade for null, então a amostra define a User propriedade da instância atual HttpContext para um GenericPrincipal objeto onde o Identity do GenericPrincipal objeto é a GenericIdentity com um Name valor de "default".
Note
O evento DefaultAuthentication_OnAuthenticate é levantado antes do AuthorizeRequest evento. Como resultado, se definir a User propriedade da instância atual HttpContext para uma identidade personalizada, isso pode afetar o comportamento da sua aplicação. Por exemplo, se estiver a usar a FormsAuthentication classe e especificar <deny users="?" /> na secção de configuração de autorização garantir que apenas utilizadores autenticados tenham acesso ao seu site, este exemplo fará com que o elemento de negação seja ignorado, pois o utilizador terá um nome, que é "default". Em vez disso, especificaria <deny users="default" /> garantir que apenas utilizadores autenticados possam aceder ao 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
Observações
O Authenticate evento é elevado após o AuthenticateRequest evento. É usado para garantir que a User propriedade da instância atual HttpContext é preenchida com um IPrincipal objeto.
Pode aceder ao Authenticate evento da DefaultAuthenticationModule classe especificando uma sub-rotina chamada DefaultAuthentication_OnAuthenticate no ficheiro Global.asax da aplicação.
Podes usar a Context propriedade do DefaultAuthenticationEventArgs objeto no evento DefaultAuthentication_OnAuthenticate para definir a User propriedade da instância atual HttpContext para um objeto personalizado IPrincipal . Se não especificar um valor para a User propriedade, define DefaultAuthenticationModule a User propriedade da HttpContext instância para um GenericPrincipal objeto que não contém qualquer informação do utilizador.
O evento DefaultAuthentication_OnAuthenticate é elevado após o AuthenticateRequest evento e antes do evento AuthorizeRequest . Se tiver uma authorization secção que depende do nome de utilizador para negar ou permitir o acesso à sua aplicação, modificar a User propriedade da instância atual HttpContext pode afetar o comportamento da sua aplicação. Certifique-se de que o nome de utilizador que definiu durante o evento DefaultAuthentication_OnAuthenticate é considerado quando especificar a secção de autorização na sua configuração.
Note
Se a aplicação Web estiver a correr em IIS 7.0 em modo Integrado, o Authenticate evento de não DefaultAuthenticationModule é levantado. Se o mode atributo do elemento de configuração de autenticação for definido como "Nenhum" e a aplicação subscrever o Authenticate evento, surge um PlatformNotSupportedException erro. Neste cenário, para receber notificações de autenticação, subscreva o AuthenticateRequest evento da HttpApplication instância. Para mais informações sobre questões de compatibilidade no modo Integrado, consulte Moving an ASP.NET Application do IIS 6.0 para o IIS 7.0.