1
我對MVC沒有經驗,我正在嘗試創建一個主索引頁和各種子頁面的項目,所有這些都需要用戶進行日誌記錄以及登錄/註冊頁面這是每個人的切入點。MVC 4授權和登錄使用
我一直在尋找如何檢查和用戶重定向到登錄頁面,當他們嘗試直接訪問其他網頁,或當會話變量過期,我這樣做:
[Authorize]
public class HomeController : Controller
{
}
Web.config文件:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Home/Login" timeout="2880" />
</authentication>
</system.web>
而且我期待的是,如果用戶沒有登錄,他們重定向到~/Home/Login
,但我不認爲這正在發生,我得到的錯誤這些頁面,因爲我試圖使用會話變量來顯示他們的用戶名在頁面等
在登錄的代碼,我有:
//after I found the user in my database and confirmed his password
FormsAuthentication.SetAuthCookie(user.userName, false);
Session["User"] = user;
return View("Index");
我發現如何實現自定義授權,登錄和這樣的各種解決方案,但我不知道如果這些解決方案已經可以在這個MVC版本上使用(我使用的是4.0),我想盡可能保持最簡單的方式,因爲我還在學習。
所以基本上我想檢查用戶是否登錄了所有頁面,但是登錄頁面,如果他不是,則將他重定向到登錄頁面。
如何使用MVC功能來完成此操作?
你能否詳細說明一下?我見過一些指南解釋說,有一種方法是每個控制器/方法都被自動設置爲僅授權,而我指定允許匿名調用哪些控制器/方法,但是我找不到我設置的位置。 – Danicco 2014-10-16 17:40:01
您可以通過我提到的屬性匿名設置哪些方法。相反,如果你想指定哪些方法需要授權,你可以使用[Authorize]屬性和你需要的任何角色[Authorize(「ADMINS」)] – 2014-10-16 17:46:30
啊,我不必配置它......這太好了。我仍然有問題,但我的路由配置默認爲「索引」功能。我的'''''有'[Authorize]'屬性的'Index',我想根據我的web.config中的規定將用戶(未記錄)發送到'〜/ Home/Login',但它不是工作......它仍然通過'Index'函數,就好像'[Authorize]'沒有工作。你會知道爲什麼會發生這種情況? – Danicco 2014-10-16 17:50:58