我創建了一個全新的ASP.NET MVC 5項目,FormsAuthentication.SetAuthCookie
測試[Authorize]
屬性。我簡單地設置一個cookie中的一個動作(在我的家庭控制器):FormsAuthentication.SetAuthCookie不[授權]在MVC 5
public ActionResult About()
{
FormsAuthentication.SetAuthCookie("someUser", false);
我限制進入另一個:
[Authorize]
public ActionResult Contact()
{
當我啓動我的網頁,並導航到/home/contact
,我是正確的重定向到登錄頁面。然後我去/home/about
,拿到我的cookie,然後回到聯繫頁面。但我仍然被重定向到登錄頁面 - 該cookie不認證/授權我。
在調試器中,當我多次加載關於頁面時(也就是說,即使在設置auth cookie之後,它從來沒有認爲我已經被認證),它就是HttpContext.User.Identity.IsAuthenticated == false
。
是否有必須在這裏做了一些額外的步驟?我不應該爲自己的基本身份驗證設置自己的IPrincipal,是嗎?
MVC5不再使用表單身份驗證,請檢查您的web.config中的 。如果你想使用它,請按照這篇文章,你可以使用owin來處理它。 http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx –
DSR
2014-10-28 16:37:54
經過對OWIN的一些研究,似乎這是更好的選項,看看微軟如何朝着MVC 6的方向前進。我使用[無數據庫的ASP.NET身份](https://github.com/leeenglestone/ASP.NET-Identity-Without-a-Database)作爲一個如何驗證和授權的例子。這比一個簡單的'SetAuthCookie'複雜得多,但它似乎更具前瞻性。 – user655321 2014-10-29 16:49:03
男人,這是一堆doo doo。爲什麼微軟會這麼做? – Hill 2016-02-04 06:33:39