Estoy intentando implementar un proyecto de aplicación web en el que mis páginas web puedan verificar la fecha/hora del vencimiento del ticket de autenticación del servidor utilizando AJAX.Comprobar la caducidad del ticket de autenticación sin afectarlo
Estoy usando la Autenticación de formularios con slidingExpiration.
El problema que encuentro es que no puedo encontrar la forma de verificar el valor sin reiniciarlo. He creado una página sencilla - CheckExpiration.aspx - a continuación es el código subyacente:
private class AjaxResponse
{
public bool success;
public string message;
public string expirationDateTime;
public string secondsRemaining;
public string issueDate;
}
protected void Page_Load(object sender, EventArgs e)
{
AjaxResponse ar = new AjaxResponse();
JavaScriptSerializer js = new JavaScriptSerializer();
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
string expiration = id.Ticket.Expiration.ToString();
TimeSpan timeRemaining = id.Ticket.Expiration - DateTime.Now;
ar.success = true;
ar.expirationDateTime = expiration;
ar.issueDate = id.Ticket.IssueDate.ToString();
ar.secondsRemaining = timeRemaining.Minutes.ToString() + ":" + timeRemaining.Seconds.ToString();
}
else
{
ar.success = false;
ar.message = "User not authenticated";
}
string output = js.Serialize(ar);
Response.Write(js.Serialize(ar));
}
que llamo esta página desde la página maestra en mi solicitud usando ajax cada segundo. Pasado el punto medio de la expiración de autenticación, la expiración se restablece.
¿Cómo puedo evitar este comportamiento? ¿Hay algo que pueda hacer en el encabezado de la solicitud, tal vez?
cheque esto es algo similar o su problema es dif ... http: //www.dotnetmonster.com/Uwe/Forum.aspx/asp-net-security/2316/problem-with-slidingExpiration – Scorpio
Creo que esta publicación a la que está enlazando es alguien que tiene problemas con el comportamiento predeterminado de .net. No me importa ese comportamiento porque si permaneces inactivo, no sabrás que has cerrado la sesión en el servidor hasta que intentes hacer algo. Estoy tratando de hacer algo más fácil de usar, donde se le informará que está a punto de cerrar la sesión. Tampoco quiero confiar solo en un temporizador de JavaScript establecido al ingresar a una página porque la autenticación podría actualizarse desde otra pestaña. –