Usuário com melhor resposta
Autenticação de usuario

Pergunta
-
Pessoal estou com um sério problema no meu FormsAutheticationTicket, eu declaro ele coloco o tempo de expiração porem o mesmo não expira, preciso que após 30 minutos se ação no sistema ele expire a sessão do usuario.
segue codigo web.config
<authentication mode="Forms"> <forms name=".ASPXAUTH" path="/" loginUrl="PortalAcademicoLogin.aspx" defaultUrl="Default.aspx" cookieless="AutoDetect" timeout="30" slidingExpiration="true"></forms> </authentication>
.cs (cria o ticket)
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, string.Format("{0} - {1}", objUsuario.Idf_Usuario, objUsuario.Nme_Usuario), DateTime.Now, DateTime.Now.AddMinutes(30), false, permissoes, FormsAuthentication.FormsCookiePath); //Cria a criptografia no ticket string hash = Criptografia.CriptografiaFormsAuthentication(ticket); //Cria o cookie de usuario com as informações do ticket HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //Envia o cookie ao navegador. HttpContext.Current.Response.Cookies.Add(cookie); string urlRequest = string.Empty; urlRequest = "~/Default.aspx"; //Envia o usuario ao local desejado. HttpContext.Current.Response.Redirect(urlRequest, false);
Alguem tem ideia o porque do .net não expirar meu usuario e mandar ele pra tela de login?
Respostas
-
Dá uma olhadinho neste artigo que explica sobre Forms Authentication.
Caso você queira mandar que depois de 30 minutos o usuário seja redirecionado para a tela de login você poderia estar usando jQuery.
function Redireciona() { setTimeout("document.location.href = 'login.aspx';", 1800000); }
- Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
-
Caso o usuário se autentique:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( autenticado.IdUsuario, txtUsuario.Text, DateTime.Now, DateTime.Now.AddMinutes(15), chkLembrar.Checked, autenticado.Role, FormsAuthentication.FormsCookiePath); //Criptografando o ticket string hash = FormsAuthentication.Encrypt(ticket); //cria um cookie e atribui todos os valores do ticket a ele HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //verifica se o ticket é persistente e passa a informaçao ao cookie if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; //grava o cookie no browser do usuario Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["ReturnUrl"];
if(returnUrl != null) //apenas logou, redireciona pro inicio
returnUrl = "Principal.aspx";
Response.Redirect(returnUrl);
- Editado Eduardo Cury sábado, 29 de março de 2014 03:37
- Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
Todas as Respostas
-
Dá uma olhadinho neste artigo que explica sobre Forms Authentication.
Caso você queira mandar que depois de 30 minutos o usuário seja redirecionado para a tela de login você poderia estar usando jQuery.
function Redireciona() { setTimeout("document.location.href = 'login.aspx';", 1800000); }
- Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19
-
Caso o usuário se autentique:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( autenticado.IdUsuario, txtUsuario.Text, DateTime.Now, DateTime.Now.AddMinutes(15), chkLembrar.Checked, autenticado.Role, FormsAuthentication.FormsCookiePath); //Criptografando o ticket string hash = FormsAuthentication.Encrypt(ticket); //cria um cookie e atribui todos os valores do ticket a ele HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); //verifica se o ticket é persistente e passa a informaçao ao cookie if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; //grava o cookie no browser do usuario Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["ReturnUrl"];
if(returnUrl != null) //apenas logou, redireciona pro inicio
returnUrl = "Principal.aspx";
Response.Redirect(returnUrl);
- Editado Eduardo Cury sábado, 29 de março de 2014 03:37
- Marcado como Resposta Giovani Cr terça-feira, 1 de abril de 2014 19:19