ユーザーにログインして他のWebサービスを呼び出してコンテンツを更新できる静的なHTMLページがあります。ユーザー名とパスワードは、JQuery経由でWCF RESTサービスに送信されます。ログインサービスは、次のようになります。ログイン後にIsAuthenticatedが変更されない
[WebInvoke(UriTemplate = "", Method = "POST")]
public bool Login(ServiceUser user)
{
if(validCredentials(user)){
FormsAuthentication.SetAuthCookie(user.Username, true);
return true;
}
return false;
}
しかし、それが起こる前に、ページのロードに私は、ユーザーが既に認証されているかどうかを確認するために別のサービスを呼び出します。そのサービスは次のようになります:
[WebGet(UriTemplate = "isAuthenticated")]
public bool IsAuthenticated()
{
return HttpContext.Current.User.Identity.IsAuthenticated;
}
こうして、ページをリロードしてすでにログインしている場合は、再度パスワードを要求しません。
問題は、IsAuthenticatedはブラウザを閉じて再度開くまで、値を変更していないようです。ページを更新しても値は変更されません。それを間違ってコーディングしていますか?それはWebGetなので、値をキャッシュしていますか?