繁体   English   中英

如何将ASP.NET成员资格/角色用户链接到db中的表?

[英]How do I link ASP.NET membership/role users to tables in db?

我将使用表单身份验证,但我希望能够将asp.net用户链接到数据库中的某些表

如果我有一个班级和学生(作为角色),我将有一个班级学生表。

我打算在其中放入一个包含简单的int userid和ASP.NET用户名的Users表,并将userid放在我想要链接用户的任何地方。

听起来不错吗? 建模的任何其他选项? 听起来有点复杂吗?

基本上,ASP.NET成员资格服务为每个用户创建一个GUID ,因此如果您需要在表中拥有该用户的外键,那么这就是您应该使用的。 因此,您不需要用户名的映射表到用户ID,因为您已经拥有每个用户的唯一标识符(前面提到的GUID)

如果您希望扩展可以针对用户存储的信息量,则此链接包含有关该信息的所有详细信息。

如果您要使用ASP.NET成员资格,则应使用ASP.Net成员资格类和数据库表创建用户。 这将在dbo.aspnet_Membership中创建一个用户,并为该用户设置适当的角色,成功插入此表后,您可以从dbo.aspnet_Membership表中获取UserId

在您的Users表中创建一个带有int(自动递增)ID的表,并在您的表(而不是用户名)中创建一个名为uniqueidentifier的名称为membershipID的 memberID字段。 这是您存储aspnet_Membership表中的值以将两者链接在一起的位置。 您还应在memberID字段上放置外键关系以实现参照完整性。

编辑:只是为了澄清其他帖子,您的ASP.NET代码中的ID类型为GUID ,SQLServer数据库中的类型为uniqueidentifier

我们为一个系统做了这个,我们使用另一个身份验证系统将表单身份验证改编成系统。 我们在现有的用户帐户表中添加了一列。 我们添加了一个GUID列,因为这是aspnet_xxxx表使用的,并用aspnet表中的GUID填充它。 然后,我们将表中的条目创建包含在依赖于使用asp.net成员资格调用创建帐户成功的事务中。 确保将表与事务或事物同步以使您在一个系统中没有条目而在另一个系统中没有条目是非常重要的。

我不是百分百确定,但我认为用户名可以更改,因此您不应该使用它来链接您的系统。 使用GUID。

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM