来自现有数据库架构的ASP.NET用户帐户

时间:2012-11-16 06:11:08

标签: asp.net sql-server-2008 membership-provider

首先:使用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,但对于这样一个简单的模式来说似乎有些过分。必须有一种更简单的方法来实现它。欢迎任何建议或澄清。

2 个答案:

答案 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)