Ich versuche, ein Webanwendungsprojekt zu implementieren, bei dem meine Webseiten den Server auf das Ablaufdatum/die Zeit für das Authentifizierungsticket mithilfe von AJAX überprüfen können.Überprüfen Sie den Ablauf des Authentifizierungstickets, ohne es zu beeinflussen
Ich verwende Formularauthentifizierung mit gleitendem Expiration.
Das Problem, über das ich stolpere, ist, dass ich nicht herausfinden kann, wie man den Wert überprüft, ohne ihn zurückzusetzen. Ich habe eine einfache Seite - CheckExpiration.aspx - unterhalb der Code hinter ist:
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));
}
Ich nenne diese Seite von der Master-Seite in meiner Anwendung Ajax jede Sekunde. Nach Ablauf der Hälfte des Ablaufs der Authentifizierung wird der Ablauf zurückgesetzt.
Wie verhindere ich dieses Verhalten? Gibt es irgendetwas, was ich im Header der Anfrage tun kann?
Check das ist es etwas ähnliches oder Ihr Problem ist diff ... http: //www.dotnetmonster.com/Uwe/Forum.aspx/asp-net-security/2316/problem-with-slidingExpiration – Scorpio
Ich denke, dass dieser Beitrag, zu dem Sie verlinken, Probleme mit dem Standardverhalten von .net hat. Ich interessiere mich nicht für dieses Verhalten, denn wenn Sie im Leerlauf bleiben, werden Sie nicht wissen, dass Sie auf Serverebene ausgeloggt sind, bis Sie versuchen, etwas zu tun. Ich versuche, etwas benutzerfreundlicher zu machen, wo Sie darüber informiert werden, dass Sie gerade ausgeloggt werden. Ich möchte mich auch nicht nur auf einen Javascript-Timer verlassen, der beim Eingeben einer Seite eingestellt wird, weil die Authentifizierung von einer anderen Registerkarte aktualisiert werden könnte. –