2011-12-08 92 views
0

我有一個靜態HTML頁面,允許用戶登錄,然後調用其他Web服務來更新內容。用戶名和密碼通過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」)]並且它看起來工作正常。