ASP.NET标识

ASP.NET标识,asp.net,identity,membership,asp.net-mvc-5,asp.net-identity,Asp.net,Identity,Membership,Asp.net Mvc 5,Asp.net Identity,我目前正在构建一个新的ASP.NETMVC5项目,我想在9月左右发布。我需要选择一个会员制,但我现在很困惑我应该选择哪个方向。当前的SimpleMembership运行良好,但显然与即将推出的ASP.NET标识不兼容。另一方面,ASP.NET标识是全新的,没有文档,可以随时更改。最后,这里似乎使用了基于字符串的ID,与SimpleMembership支持的基于整数的ID相比,这似乎是非常不必要的开销。我可以选择一种适合未来的好方法吗?在我看来,如果你用asp.net mvc 5开始你的项目,你应

我目前正在构建一个新的ASP.NETMVC5项目,我想在9月左右发布。我需要选择一个会员制,但我现在很困惑我应该选择哪个方向。当前的SimpleMembership运行良好,但显然与即将推出的ASP.NET标识不兼容。另一方面,ASP.NET标识是全新的,没有文档,可以随时更改。最后,这里似乎使用了基于字符串的ID,与SimpleMembership支持的基于整数的ID相比,这似乎是非常不必要的开销。我可以选择一种适合未来的好方法吗?

在我看来,如果你用asp.net mvc 5开始你的项目,你应该使用新的会员制,因为它与标准集成得很好。

我建议不要使用SimpleMembership。您仍然可以在数据库中使用int-ID,插入数据库实体时只需将ID设置为字符串(),即:

public class MyUser : IUser {
   [Key]
   int UserID { get; set; }

   string IUser.Id { get { return UserId.ToString(); } }
}

我要么使用最新版本的identity,要么完全建立自己的帐户系统。ASP.NET Identity现在使用GUID(数据库中的NVARCHAR(128))作为ID,但是如果需要,仍然可以使用int。我知道人们仍然在使用identity 1.0,没有任何问题,我相信他们当时使用int作为Id

无论哪种方式,Id都不应该与int或guid冲突。正如上面的帖子所说,您可以只使用Id.ToString()


无论您采取何种方式,我认为都不会有太大的不同。

我相信ASP.NET是一个非常好的框架,提供了应用程序所需的几乎所有功能。它还提供了根据您的选择选择Id列类型的可行性。我在ASP.NET identity上创建了一个基本的包装器,并发布了一个nuget,这样就可以方便地使用它。您可以查看以下代码

使用字符串格式的guid代替实际的guid,以便更容易地交换持久性机制,比如如果您想使用不支持guid的nosql解决方案。id列是索引的,虽然索引的int列性能更好,但对于大多数应用程序来说,差异可以忽略不计。有关使用GUID的原因,请参阅。此外,我们还添加了更多教程,并提供了大量支持。