C# 使用aspnet成员表中的UserId作为外键是一个好主意吗?

C# 使用aspnet成员表中的UserId作为外键是一个好主意吗?,c#,asp.net,sql,asp.net-membership,C#,Asp.net,Sql,Asp.net Membership,我正在创建一个表,用于保存登录用户的用户id。我想知道使用UserId列作为我正在创建的表的引用列是否有任何缺点?谢谢。我偶尔会这样做,但有一件事你不想开始做,那就是通过querystring来回发送到其他页面。如果你这样做了,至少要加密它 我偶尔会这样做,但有一件事你不想开始做,那就是通过querystring来回发送到其他页面。如果你这样做了,至少要加密它 根据我的经验,当您想将另一个表中的数据(如用户配置文件数据)链接到SQL成员资格用户时,使用UserId是可以的 在代码中,您可以执行以

我正在创建一个表,用于保存登录用户的用户id。我想知道使用UserId列作为我正在创建的表的引用列是否有任何缺点?谢谢。

我偶尔会这样做,但有一件事你不想开始做,那就是通过querystring来回发送到其他页面。如果你这样做了,至少要加密它


我偶尔会这样做,但有一件事你不想开始做,那就是通过querystring来回发送到其他页面。如果你这样做了,至少要加密它


根据我的经验,当您想将另一个表中的数据(如用户配置文件数据)链接到SQL成员资格用户时,使用UserId是可以的

在代码中,您可以执行以下操作以获取用户信息:

var username = HttpContext.Current.User.Identity.Name;
var user = Membership.GetUser(username);
var userid = user.ProviderUserKey as Guid?;

// Look-up user info based on UserId GUID
var info = QueryOtherTables(userid);

根据我的经验,当您希望将另一个表中的数据(例如用户配置文件数据)链接到SQL成员资格用户时,使用UserId是可以的

在代码中,您可以执行以下操作以获取用户信息:

var username = HttpContext.Current.User.Identity.Name;
var user = Membership.GetUser(username);
var userid = user.ProviderUserKey as Guid?;

// Look-up user info based on UserId GUID
var info = QueryOtherTables(userid);

取决于您的具体场景。它可以工作。问问自己,你想成为密钥的数据是否是唯一的(没有多帐户日志记录);因此,即使有多个应用程序,并且来自这些应用程序的用户存储在同一个表中,我相信id应该是唯一的。这取决于您的特定场景。它可以工作。问问自己,你想成为密钥的数据是否是唯一的(没有多帐户日志记录);因此,即使有多个应用程序,并且这些应用程序的用户存储在同一个表中,我相信id应该是唯一的。