2012-11-16 48 views
0

第一關:與SQL Server 2008ASP.NET用戶帳戶現有的數據庫架構

我繼承了一個古老的DB了一個名爲安全表,用於存儲用戶帳戶ASP.NET Web應用程序項目。這些列是:

ID,名稱,用戶名,密碼和access_level。

access_level保存1到3的整數值,指定訪問Web應用程序的某些部分。這些範圍從1 =用戶,2 =超級用戶,3 =管理員。我需要一些用戶查看某些信息,將其隱藏起來,並根據此訪問級別將其視爲可編輯的。

我對舊的ASP.NET很熟悉,所以我對提供者模型很陌生。從我至今讀我可以:

1)創建一個自定義的MembershipProvider和RoleProvider,並利用這些

2)使用隱藏的文本字段,以保持數據

什麼是創建自己的登錄系統實施這個最好的方法?我開始編寫一個自定義的MembershipProvider,但對於這樣一個簡單的模式來說似乎過分了。必須有一個更簡單的方法來實現這一點。任何建議或澄清是受歡迎的。

回答

1

如果不需要限制基於授權角色頁面,你可以簡單地使用

// After custom validation 
FormsAuthentication.SetAuthCookie(username, false); 

但是,如果你想基於授權角色(在網絡限制網頁。配置),我會建議實現自定義MembershipProvider和RoleProvider。

您只需要重寫以下方法。

的MembershipProvider

public override bool ValidateUser(string username, string password) 

public override MembershipUser GetUser(string username, bool userIsOnline) 

RoleProvider

public override bool IsUserInRole(string username, string roleName) 

public override string[] GetRolesForUser(string username) 
1

您可以爲登錄或註冊模塊創建自定義控件。它可能易於理解和調試。另外,當會員要登錄時,您可以檢查access_level並授予訪問權限。