0

首先:带有 SQL Server 2008 的 ASP.NET Web 应用程序项目

我继承了一个古老的数据库,其中包含一个名为 Security 的存储用户帐户的表。这些列是:

ID、名称、用户名、密码和访问级别。

access_level 保存一个 1 到 3 的整数值,指定对 Web 应用程序某些部分的访问。这些范围从 1 = 用户、2 = 高级用户、3 = 管理员。我将需要一些用户查看一些信息,为其他人隐藏它,并根据此访问级别使其对其他人可见+可编辑。

我熟悉旧的 ASP.NET,所以我对提供程序模型不熟悉。从我目前阅读的内容来看,我可以:

1)创建一个自定义的 MembershipProvider 和 RoleProvider 并使用它们

2) 创建我自己的登录系统,使用隐藏的文本字段来保存数据

实现这一点的最佳方法是什么?我开始编写自定义 MembershipProvider 但对于这样一个简单的模式来说似乎有点过分了。必须有一种更简单的方法来实现这一点。欢迎任何建议或澄清。

4

2 回答 2

1

您可以为登录或注册模块创建自定义控件。它可能易于理解和调试。此外,当成员要登录时,您可以检查 access_level 并授予访问权限。

于 2012-11-16T07:05:22.523 回答
1

如果您不需要根据授权角色限制页面,您可以简单地使用

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

但是,如果您想根据授权角色(在 web.config 中)限制页面,我建议您实现 Custom MembershipProvider 和 RoleProvider。

您只需要覆盖以下方法。

会员提供者

public override bool ValidateUser(string username, string password)

public override MembershipUser GetUser(string username, bool userIsOnline)

角色提供者

public override bool IsUserInRole(string username, string roleName)

public override string[] GetRolesForUser(string username)
于 2012-11-21T19:33:11.350 回答