使用现有数据库连接.NET成员资格和角色

时间:2013-06-19 21:59:16

标签: asp.net asp.net-membership

我在这里找到了一些主题,但是他们指的是太通用的文档,或者对于迄今为止最相关的链接,它们不起作用。 (我将在此处将.NET中的成员资格/角色的所有内置功能称为“成员资格”。)

使用.NET 4.0和Visual Web Developer 2010 Express和SQL Server 2005。

我正在创建一个网站,为了注册,您需要成为付费会员。我已经创建了包含所有会员信息的数据库,我已经创建了他们注册的表单,以及他们自己或网站管理员可以管理其帐户信息的页面。我甚至还创建了一个类来验证它们,并根据访问级别(角色)检查页面上的权限。

我希望对这些选项中的任何一个做出清晰,简明的解释:

•在存储用户名/密码的地方指向“成员资格”,禁止其自动创建自己的数据库。 (然后我将通过我的网站返回并在我使用官方.NET“Membership”的几个地方替换我自己的自定义身份验证。)

•或者仍然运行我自己的自定义身份验证,但在此过程中,请说“会员”,“嘿!用户称为”用户名“和角色”成员“现在已经过身份验证。请注意,在您自己的特殊位置,给他们分配这个角色,并在我以后问你时知道如何处理它。“这可能是“Forms Authentication API”吗?

帐户不仅仅是用户名/密码/角色。我知道我可以为使用.NET创建的帐户添加更多字段,但我也真的不想使用一些随机创建的,自包含的,脱节的数据库,只是为了处理登录。

我还没有学过“会员”的基础知识,尽管我在学习.NET的过程中越来越接近;我现在不能花时间在个人原因上取得进展,但我必须继续制作这个网站。我希望能够使用.NET安全性带来的许多好处,例如能够使用web.config等从文件夹中排除用户。

大多数情况下,我只是在寻求保证,在我完成项目的其他方面之后,我可能会做出倒退,但在我实现之前,并且无需重写一半的会员表格并将其拆分将数据存入多个数据库,并确定如何在会员注册时使用“会员资格”作为其中的一部分或全部。 可能的?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你正在做的事情与我在这里工作的东西类似。

我们在ColdFusion中有一个自定义身份验证脚本,我正在创建第二个带有成员身份登录的.NET系统。

我采用的方法是将所有用户/角色/配置文件信息移动到Membership的表中,并创建一个额外的tblUserProperties表,其中包含Membership标准表不能容纳的所有其他信息。

我已经将ColdFusion查询重新编码为指向新的Membership表。

这样,如果用户从任一系统更改密码,登录也可以在其他系统中使用。

我认为由于密码更改的原因,保留两个执行相同操作(身份验证)的系统/表是有风险的。可能会有更多,但为什么你不能只是简单地改变你的自定义代码指向会员指向的位置?这样您就可以充分发挥会员提供者的作用。