2014-02-20 27 views
1

我有一些代碼可以創建身份驗證票證。創建票後,我們調用SetAuthCookie設置cookie如:SetAuthCookie設置Cookie,但在後續請求中未經身份驗證

FormsAuthentication.SetAuthCookie(username, true); 
Response.Redirect("/", true); 

如果我檢查根頁上看到,如果用戶進行身份驗證,則返回false。但是,如果我硬編碼的用戶名在和做:

FormsAuthentication.GetAuthCookie("jason", true).value); 

我得到相應的cookie值。所以,cookie存在。但名稱和國旗不會被修改。關於我的問題可能是什麼的任何想法?我正在使用ASP.NET 4和MVC。

+0

爲什麼在ASP.NET MVC應用程序中使用Response.Redirect?這些任務通常通過從相應的控制器操作中返回適當的ActionResult來完成。你也可以在Fiddler中看到被設置的持久性cookie嗎?然後當瀏覽器發出GET請求時,這個cookie傳遞給'''端點嗎? –

+0

因爲用戶並不總是生活在這個MVC應用程序中。我們可能必須將它們重定向到另一個非MVC應用程序。但是,我可以看到cookie被設置,值只是不填充。 –

回答

3

解決

我錯過了在web.config的形式部分。由於登錄表單駐留在另一臺服務器上,因此已刪除本地測試。因此,將以下內容添加到web.config解決了我的問題:

<authentication mode="Forms" /> 
相關問題