2011-12-08 13 views
0

ユーザーにログインして他の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なので、値をキャッシュしていますか?

答えて

0

WebGetがキャッシュしていると思います。私はIsAuthenticatedサービスを[WebInvoke(UriTemplate = "isAuthenticated"、Method = "POST")]に変更し、正しく動作しているようです。

関連する問題