2013-07-10 82 views
0

我有一個現有的用戶數據庫,所以我不使用.NET的用戶配置文件的東西出來的。如何在asp.net mvc4中存儲custome用戶登錄憑據?

我有一個控制器,我實現了創建用戶,檢索密碼,註冊用戶,查看等功能。唯一的問題是,我如何傳遞用戶登錄憑據(如用戶ID,登錄時間,角色等)整個Web應用程序,以便它可以用作某些頁面的安全訪問的意思?例如,只有具有管理員角色的用戶才能訪問特定頁面。

我應該將它作爲會話對象傳遞嗎?

+0

在'Session'對象?? – Paritosh

+0

是的,但這是存儲它的好方法嗎?有更好的方法嗎?我試圖避免成員關係並使其更簡單。 –

+1

擁有某種用戶憑證類,您可以在其中收集所需的所有信息,並讓會話擁有該類的屬性,該類將在成功登錄後設置。你能得到多少簡單?沒有任何會員資格。 – Corak

回答

0

您可以使用ASP.Net成員資格提供程序爲不同的角色或用戶指定訪問權限。

要求用戶登錄,使用方法:

[Authorize] 
public class YourController : Controller 

// Or 
[Authorize] 
public ActionResult YourAction() 

限制特定角色的訪問,使用:

[Authorize(Roles = "Admin, User")] 
public class SomeController : Controller 

// Or 
[Authorize(Roles = "Admin, User")] 
public ActionResult SomeAction() 

,並限制對特定的用戶,使用訪問:

[Authorize(Users = "ABC1, ABC2")] 
public class SomeController : Controller 

// Or 
[Authorize(Users = "ABC1, ABC2")] 
public ActionResult SomeAction() 

欲瞭解更多請關注http://www.codeproject.com/Articles/288631/Secure-ASP-NET-MVC3-applications

請隨時提出進一步的具體問題。謝謝。

+0

我試圖遵循關於如何從現有數據庫創建自定義成員資格的每個教程的指南,但對於我來說理解起來總是很複雜。 –

+1

是的,它需要很少的學習曲線...所以只要有耐心,享受...我希望下面的文章會幫助你http://www.codeproject.com/Articles/280129/Extending-Asp-Net-role-based-安全與自定義感謝。 –

0

使用形式爲首發身份驗證:ASP.NET Forms Authentication Overview

保存它的數據庫用戶ID。

FormsAuthentication.SetAuthCookie(userId, rememberMe); 

這樣你總是可以得到用戶ID。然後,它可以讓您在使用用戶標識時獲取用戶詳細信息。如果你一直需要這個,請將它緩存在Session對象上。在任何情況下,都使用表單身份驗證,因爲即使會話死亡,您也可以始終從表單驗證中重新獲取用戶標識並重建其高速緩存。使用表單身份驗證的另一個好處是,如果您在Web場中,則每個Web服務器都有一個會話對象,但由於用戶標識始終在auth cookie上可用,因此您始終可以獲取它。

相關問題