Como o request.isauthenticated funciona?
-
18-09-2019 - |
Pergunta
Código MSDN Descrição da amostra: O exemplo do código a seguir usa a propriedade isautenticada para determinar se a solicitação atual foi autenticada. Se não foi autenticado, a solicitação será redirecionada para outra página em que os usuários podem inserir suas credenciais no aplicativo da Web. Esta é uma técnica comum usada na página padrão para um aplicativo.
Isso é ótimo, mas sem detalhes ou algo assim ...
O que exatamente está checando? Como faço para defini -lo como verdadeiro?
Vá a milha extra: onde eu encontraria uma documentação mais detalhada sobre isso?
Solução
Graças ao Google, encontrei uma versão em cache do post @Keyboardp refere -se em sua resposta. Estou postando essa resposta/post aqui como uma referência para outros, já que o link original está quebrado (2012-12-06).
Pergunta original que a resposta abaixo se refere a:
Eu tenho um aplicativo baseado em formulários que está me dando ajustes. Percebi que, em um local onde a propriedade isautenticada era verdadeira, agora era falsa e não estava funcionando como esperado. Estou me perguntando se tenho um cenário que seja inválido ??
Alguém pode me dizer o que define a propriedade isauthenticada para True-o que constitui login.
Resposta de Daniel Kent:
Request.IsAuthenticated
não é apenas para a autentciação de formulários - é válido, independentemente do tipo de autenticação que esteja sendo usada (Windows, Passport, Forms ou nosso próprio esquema personalizado)
HttpRequest.IsAuthenticated
Será verdade quando o usuário que faz a solicitação for autenticado. Essencialmente, esta propriedade fornece as mesmas informações que Context.User.Identity.IsAuthenticated
.
No início de um pedido, Context.User.Idenity
contém a GenericIdentity
com um nome de usuário nulo. o IsAuthenticated
A propriedade para este objeto retornará false
assim Request.IsAuthenticated
vai ser false
. Quando um módulo de autenticação lida com o Application_AuthenticateRequest
evento e sucesso autentica o usuário que substitui o GenericIdentity
dentroContext.User.Identity
com um novo IIdentity
objeto que retornará true
de seu IsAuthenticated
propriedade. Request.IsAuthenticated
então voltará true
.
No caso de autenticação de formulários, o módulo de autenticação de formulários usa o ticket de autenticação criptografada contida no cookie de autenticação para autenticar o usuário. Depois de fazer isso, substitui oGenericIdentity
dentro Context.User.Identity
com um FormsIdentity
objeto que retorna True
de seu IsAuthenticated
propriedade.
Então, configuração IsAuthenticated
para true
é realmente diferente de fazer login. Como Jeff diz, o login nos formulários é a autenticação quando o ticket de autenticação é gerado e enviado ao cliente como cookie. (RedirectFromLoginPage
ou SetAuthCookie
) Do que estamos falandoIsAuthenticated
é autenticação que acontece com cada solicitação de página. O login acontece quando um usuário insere suas credenciais e recebe um ingresso, a autenticação acontece com cada solicitação.
Outras dicas
Há um post bastante detalhado de Daniel Kent aqui. (Snippet)
Request.isauthenticated não é apenas para formulários autentciation - é válido, independentemente de que tipo de autenticação esteja sendo usado (Windows, Passport, Forms ou nosso próprio esquema personalizado)
Httprequest.isauthenticated será verdadeiro quando o usuário que faz a solicitação for autenticado. Essencialmente, essa propriedade fornece as mesmas informações que o context.User.Identity.isAuthenticished.