2 Stimmen

ASP.NET MVC Benutzerauthentifizierung Ablaufzeit

Wie kann die Ablaufzeit der Benutzerauthentifizierung über einen AJAX-Aufruf zurückgegeben werden?

1voto

Evgeny Levin Punkte 6247

Aktion:

[HttpGet]
public ActionResult AuthenticationExpiration()
{
    return Content(HttpContext.Request.Cookies[".ASPXAUTH"].Expires.ToString();)
}

Ansicht:

@Ajax.ActionLink("Zeit abrufen", "AuthenticationExpiration", new AjaxOptions{ HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "expirationTimeBox"})

UPDATE 1

Beachten Sie Ihre Formular-Authentifizierungskonfiguration:

Wenn Ihre slidingExpiration-Eigenschaft auf true gesetzt ist, wird die Cookie-Lebensdauer verlängert.

UPDATE 2

Ich habe eine Lösung für den konstanten DateTime.Min-Wert des Ablaufdatums gefunden: http://forums.asp.net/p/1158239/1920541.aspx#1920541

UPDATE 3

Entschuldigung, ich war von Anfang an verwirrt über das Ziel, das Ablaufdatum durch einen Ajax-Aufruf zu erhalten. Dies ist eine falsche Lösung, wie wir sehen. Nativer und korrekter wäre es, mit JavaScript zu arbeiten, ABER das ist unmöglich, wenn man dem glaubt, was ich gesehen habe:

Ablaufdatum des Cookies lesen

C# Asp.net Das Abrufen der vom JavaScript festgelegten Cookie-Ablaufzeit gibt immer 01.01.0001 zurück

Die einzige Lösung, die ich gesehen habe, besteht darin, das Ablaufdatum des .ASPXAUTH-Cookies auf einen separaten Cookie-Wert zu setzen, wenn Sie FormsAuthentication.SetAuthCookie(userName, isPersistent); aufrufen, um DateTime.Now + new TimeSpan(//... Ihre Ablaufzeit, die in der web.config steht);.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X