通过GUID或身份2中的整数跟踪用户

时间:2014-06-27 20:11:42

标签: asp.net-mvc asp.net-mvc-5 asp.net-identity

从身份2开始,他们已经从具有整数值的id(例如1,2,3,4,...)切换到具有nvarchar值的id,该id将id存储为某些长字符串,如

a234vt-23sdlj23klj-34jkh34jh34-23jk4jh2

如果我正在创建一个拥有属于登录用户的单个所有者的对象,那么我需要将用户ID附加到它,我是否应该使用Identity 2中的这个新ID,或者我应该尝试创建一些其他值如整数并将其放入aspnetusers表中?它真的很重要,我所做的就是按所有者(userid)获取Gift对象并在表单上显示/修改礼物对象。

这是我的产品对象

的示例
public class Gift
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Category> Categories { get; set; }
    public int Rating { get; set; }
    public GiftStatus Status { get; set; }
    Public string UserId {get; set; //where userid is the id of the user that owns this object, should it be 3kj23jh3-h3hk1jh2-khj2h34l1b-n22g35l  ???

}

1 个答案:

答案 0 :(得分:1)

使用Guid UserId引用用户没有问题,如果这是您所关注的问题。除非您有特殊原因不想使用Guid作为UserId,否则我建议您只使用默认行为以简化实现。有两个单独的ID跟踪用户听起来不必要的复杂,我不推荐这条路。

如果你有充分的理由要求将Int作为主键而不是Guid,你可以看一下:http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx(向下滚动到&#34;制作主要类型关键是可扩展用户和角色&#34;部分)。此页面包含一个示例项目的链接,该项目向您展示如何使用Int作为PK。它还提到此扩展可用于将使用Int PK的应用程序迁移到新的Identity 2.0。

这是另一篇可能有用的文章:http://www.codeproject.com/Articles/777733/ASP-NET-Identity-Change-Primary-Key