成员资格(+角色)VS会话状态VS表单身份验证

时间:2011-12-20 15:12:36

标签: c# asp.net session forms-authentication membership

我在考试网站上考虑登录和安全机制。现状如下:

  • 数据库中有一个表,有3列(名称,密码,用于区分访问权限的数字)
  • 成功登录并分配访问权限后,将创建会话,其中包含用户名和访问权限
  • admin可以随处访问,用户访问某些页面,而不是仅登录用户访问欢迎和登录页面
  • 每个页面都继承自母版页,其中有一些逻辑来检查会话
  • 管理员和用户特定页面具有控制机制,以确定会话中当前用户的访问权限

我也尝试过使用成员资格和角色管理器,但是asp.net生成的数据库非常混乱(每个表中有大量的表和记录)。我不知道如何配置上面写的成员资格和角色(意思是简单的表并使用我自己的登录控件)。

但是成员资格和角色有一些优点(容易获得已记录用户数,代码更少,关闭页面/浏览器时自动注销,自动会话管理等等)。

我也在考虑表单身份验证,但我不确定,是否有像会话和成员身份这样的灵活性。

2 个答案:

答案 0 :(得分:0)

您想要做的所有事情都已在会员提供商中涵盖,该提供商非常易于使用。如果您不需要任何过于复杂或自定义的东西,我会认真建议再次查看会员提供商,因为它会完全按照您的要求进行,并且经过了尝试和测试。不要为了它重新发明轮子。

看一下这些文章,详细介绍了整篇文章:

Examining ASP.NET's Membership, Roles, and Profile

答案 1 :(得分:0)

使用MebershipRole经理有很多好处。 但是,有时默认的成员资格和角色提供者生成的数据还不够。

为此,如果您需要自己的数据源或自定义逻辑,则可以创建custom membership, role providers and/or a custom membership user