[英]How to store custome user login credentials in asp.net mvc4?
我有一個現有的用戶數據庫,所以我不使用現成的.NET用戶配置文件。
我有一個控制器,在其中實現了用於創建用戶,檢索密碼,注冊用戶,查看等功能。唯一的問題是,如何在整個Web應用程序中傳遞用戶登錄憑據(例如用戶ID,登錄時間,角色等)以便可以將其用作某些頁面的安全訪問權限? 例如,只有具有管理員角色的用戶才能訪問特定頁面。
我應該將其作為會話對象傳遞嗎?
您可以使用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
請隨時提出其他具體問題。 謝謝。
對初學者使用表單身份驗證: ASP.NET表單身份驗證概述
在其上保存數據庫用戶標識。
FormsAuthentication.SetAuthCookie(userId, rememberMe);
這樣,您始終可以獲得用戶ID。 然后,您可以根據需要使用用戶ID獲取用戶詳細信息。 如果您一直需要這樣做,請將其緩存在Session對象上。 無論如何,都使用表單身份驗證,因為即使會話終止,您也始終可以從表單驗證中再次獲取用戶ID並重建其緩存。 使用表單身份驗證的另一個好處是,如果您在Web場中,則每個Web服務器上都有一個會話對象,但是由於用戶ID在auth cookie中始終可用,因此您始終可以獲取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.