2013-04-12 159 views
2

我有一個ASP.NET MVC應用程序。這個應用程序有一個沒有任何屬性的控制器。這個控制器有一個相當複雜的動作。到目前爲止,該行動已經有[AllowAnonymous]。由於其複雜性,我想與授權和未授權用戶共享此操作。在授權用戶的情況下,我將爲此複雜操作添加一個基本部分。使用ASP.NET MVC控制器與授權和未授權用戶進行操作

我試着按照post的建議添加[Authorize]。但是,無論如何,User.Identity.IsAuthenticated始終是false。我有我自己的會員數據庫結構。不過,我已將它併入System.Web.Security的東西。所以,當有人登錄時,我有:

FormsAuthentication.SetAuthCookie(model.Username, model.RememberMe); 

這一直工作得很好,至此。

如何讓授權和未授權用戶訪問控制器操作,同時確定用戶是否已授權?謝謝!

+0

「'User.Identity.IsAuthenticated'始終爲false」 - 如果您使用自己的數據庫結構並將它綁定到System.Web.Security中,那麼您確定這是正確設置的嗎? ? – anaximander

+0

看起來類似於http://stackoverflow.com/questions/15770413/share-action-with-authorized-and-unauthorized-user-in-asp-net-mvc-controller –

+0

聽起來像這個問題應該真的是:「爲什麼是User.Identity.IsAuthenticated總是返回false?「 - 然後發佈你的代碼... –

回答

1

在控制器/視圖試試這個:

if(Request.IsAuthenticated) 
{ 
    doAuthenticatedStuff(); 
} 
else 
{ 
    doAnonymousStuff(); 
} 

這是否幫助?

+0

這應該是訣竅。也許只有在沒有其他人的情況下,如果我正確閱讀開始帖子,但這只是細節。沒有authoriza屬性需要。 – Hanno