POCO使用新的ASP.NET Identity和MVC 5.0 +基于声明的身份

Vli*_*nce 11 identity claims-based-identity asp.net-mvc-5

有了新版本的VS 2013 RTM和asp.net mvc 5.0,我决定试一下......

不用说,很多都改变了.例如,new ASP.NET Identity是旧的Membership和(较旧的)SimpleMembershipAPI 的替代品.

在我之前构建的所有应用程序中,我从未有机会使用Membership或SimpleMembership.我总是最终创建自己的Login()方法,将提交的ViewModel转换为POCO(使用automapper),然后使用某种存储库来查找用户和密码.

作为回报,我将获得一个用户POCO,稍后将其转换(使用automapper)到较小的UserSession POCO.较小的UserSession将放在Session中.

当然,我仍然会在用户想要注销时使用它FormsAuthentication来创建Encrypted Ticket和使用FormsAuthentication.SignOut().

但我从未充分利用所Membership (or SimpleMembership)提供的优势.

我从来没有让我的POCO实现某种接口,也没有必要在我的POCO类库中添加对Microsoft库的引用.换句话说,我从未对任何事情有过强烈的依赖.

我的问题如下:

通过我看到的示例,我不断看到新的ASP.NET Identity(通过代码优先)创建了一些表和字段.例如,该AspNetUsers表将Id字段保存为string.当然,我确信有一种方法可以克服这个问题并最终看到例子,但为什么会有人NOT want to build pure POCO classes完全控制事物的创建和方式?

除非我感到困惑(很有可能),否则任何人都可以解释为什么我要使用新的ASP.NET Identity API(或者更重要的是,使用新的Microsoft.AspNet.Identity.EntityFramework)来创建我的表?

是什么Pros and Cons在想用这个,而不是事物的POCO风格?

也许我应该在另一个问题中提出这个问题,但我也试图了解在使用POCO而不是使用ASP.NET Identity生成的实体时,如何使新的基于声明的身份受益.

请随意指出正确的方向进行澄清.

Pou*_*sen 0

您希望 Microsoft.AspNet.Identity 中的 UserManager 完成您的安全部分,这样您的用户就不必相信您可以正确处理您的安全信息。

Identity.Framework 只是 Identity 内容的数据存储,如果您不需要 EF,您可以创建自己的存储。我创建了一个直接将信息存储在 xml 文件中的文件。但我总是回到使用身份,因为我不想处理加密并确保我了解安全部门的最新内容。