首先:使用SQL Server 2008的ASP.NET Web应用程序项目
我继承了一个古老的数据库,其中包含一个名为Security的表来存储用户帐户。列是:
ID,name,user_name,password和access_level。
access_level包含1到3的整数值,用于指定对Web应用程序某些部分的访问。这些范围从1 =用户,2 =高级用户,3 =管理员。我需要一些用户查看一些信息,将其隐藏给其他人,并根据此访问级别使其可供其他人查看+编辑。
我熟悉旧的ASP.NET,所以我是提供者模型的新手。从我到目前为止所读到的内容,我可以:
1)创建自定义MembershipProvider和RoleProvider并使用这些
2)使用隐藏文本字段创建我自己的登录系统以保存数据
实现此目的的最佳方法是什么?我开始编写自定义MembershipProvider,但对于这样一个简单的模式来说似乎有些过分。必须有一种更简单的方法来实现它。欢迎任何建议或澄清。
答案 0 :(得分:1)
您可以为登录或注册模块创建自定义控件。它可能很容易理解和调试。此外,当会员要登录时,您可以检查access_level并授予访问权限。
答案 1 :(得分:1)
如果您根据授权角色执行不需要限制页面,则只需使用
// After custom validation
FormsAuthentication.SetAuthCookie(username, false);
但是,如果您想根据授权角色<在web.config中限制页面,我建议您实施Custom 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)