2013-08-17 79 views
0

我正在用ASP.NET 4(Visual Web Developer 2010 Express)構建Webiste。 由於我有我的ms數據庫,我想在我的網站上顯示數據。 有一些個人信息,所以我想爲用戶設置一個登錄系統。ASP.NET 4.0爲自定義成員資格提供程序設置角色

我遵循教程,構建了一個簡單的AccessMembershipProvider。 http://www.devx.com/asp/Article/29256/0/page/3

現在我想添加角色(角色信息存儲在數據庫中)並確定用戶是被允許還是被拒絕訪問特定的網頁。

我該如何實現? (我使用VB,但我也理解C#代碼)

謝謝大家。

編輯: 我有一個更容易的想法。 當用戶嘗試訪問特定頁面時,服務器從數據庫中檢索他們的角色信息。 當頁面加載時,服務器確定她是否被允許進入。 如果允許,頁面繼續顯示。否則,將顯示錯誤消息並將用戶重定向到其他頁面。 此方法是否有效?我想知道這將導致一個嚴重的錯誤或安全風險...... 請幫助

回答

1

在您的會員區背後的主代碼(或C++),你可以做一個檢查當前用戶

if(User.IsInRole("RoleYouWouldCheckFor")) 
{ 
// user seems to be member of appropriate group, let him in 
} 

或者,如果在MVC環境中工作,你可以用這個裝飾您的控制器:

[Authorize(Roles = "RoleYouWouldCheckFor")] 

要添加/刪除用戶的角色,試試這個:

Roles.AddUserToRole(username, roleName); 
Roles.RemoveUserFromRole(username, roleName); 
+0

所以我這樣做,當用戶成功登錄和註銷? 將「Roles.AddUserToRole(username,roleName)」添加到「Public Overrides Function ValidateUser()」中? 並在用戶註銷時使用Roles.RemoveUserFromRole(username,roleName)? 並在頁面加載時使用if語句? – pk028382

+0

NO,添加和刪除操作,你通常會在你的後端系統中使用,你不會添加和刪除om登錄/ out,你檢查角色成員資格User.IsInRole(...在你驗證用戶方法 –

+0

我真的不明白在哪裏我應該把代碼放在....你介意告訴我這個詳細嗎? – pk028382

相關問題