Web ページが AJAX を使用して認証チケットの有効期限をサーバーで確認できる Web アプリケーション プロジェクトを実装しようとしています。
私は、slideExpiration でフォーム認証を使用しています。
私が遭遇した問題は、値をリセットせずに値を確認する方法がわからないことです。簡単なページを作成しました - CheckExpiration.aspx - 以下はコードビハインドです:
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));
}
このページは、毎秒 ajax を使用してアプリケーションのマスター ページから呼び出します。認証有効期限の中間点を過ぎると、有効期限がリセットされます。
この動作を防ぐにはどうすればよいですか? リクエストのヘッダーでできることはありますか?