/ / OAuthWebSecurity Formsauthentication não está limpando as sessões mvc4 - asp.net-mvc-4, session, google-oauth

OAuthWebSecurityFormsauthentication não está limpando sessões mvc4 - asp.net-mvc-4, sessão, google-oauth

A nossa é uma aplicação MVC4. Somos autenticação OAuth & Forms para permitir o login com o google, facebook e twitter.

Pela primeira vez quando eu faço login usando o google .. Sou redirecionado para a página do google e forneci credenciais para que ele faça login, tudo bem.

Após o logout e o login novamente, eu consigo entrar automaticamente. Acho que os cookies no navegador não foram limpos, embora eu os tenha apagado no logoff.

    public ActionResult LogOff()
{
//Clears out Session
Response.Cookies.Clear();

//Signs out of WebSecurity and FormsAuthentication
WebSecurity.Logout();
FormsAuthentication.SignOut();

// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);

Session.Clear();
Session.Abandon();

return RedirectToAction(AXN_DFLT, CNTLR_DFLT);
}

Após o logoff, devo ser redirecionado para a página do google novamente ao fazer login novamente. mas isso não está acontecendo. alguém aconselha?

mesmo tipo de pergunta aqui: Sessão ASPXAUTH invalidada no logout com OAUTH

mas sem resposta !!

Respostas:

2 para resposta № 1

À primeira vista, não parece haver nenhumproblema na sua pergunta descrita. Sua solução parece estar funcionando bem. Parece-me que você não está entendendo como o OAuth, FormsAuthenticate, Sessions e Cookies se encaixam completamente. Por uma questão de simplicidade, descreverei o fluxo do processo que você descreveu e explicarei cada um deles ...

O cenário é que você NÃO está logado no seu site nem na sua conta do Google.

  1. Você navega para a página de login do seu site
  2. Clique no botão "Fazer login com o Google": isso o redireciona para a caixa de diálogo de login da Conta do Google, para que você não esteja mais no seu site ... agora está batendo na porta do Google
  3. Você fez login com sucesso no Google: o Google emitirá um cookie (apenas para os serviços do Google)

Até o momento, seu navegador possui um cookie ... o do Google

4.Você é redirecionado de volta ao seu site: seu site notou um token de acesso (não cookie) emitido pelo Google e, em seguida, seu site emitirá seu próprio cookie que não tem nada a ver com o do Google

Até esse momento, você efetuou login no Google e no seu site, o que significa que o seu navegador possui 2 cookies válidos (Google e site)

5)Posteriormente, você sair do seu site: Esta ação destrói qualquer sessão relacionada ao SEU site (incluindo o cookie do seu site). Observe que o cookie do Google ainda é válido; de fato, se você acessar seu serviço do Gmail, YouTube ou qualquer outro serviço do Google, ignorará perfeitamente a autenticação porque não saiu do Google ... SOMENTE no seu site .

6Então você decide fazer login novamente no seu site clicando no botão "Login with Google": Esta ação o levará ao Google, mas, porque o Google detecta que você já está autenticado (logado), não precisa voltar autenticá-lo, ele já sabe quem você é e não solicita a caixa de diálogo de login. Em vez disso, ele o redireciona de volta ao seu site, emitindo um novo token de acesso.

Basicamente, você não precisa fazer login novamente no Google se já estiver logado

Espero que faça sentido