有了新版本的 VS 2013 RTM 和 asp.net mvc 5.0,我决定尝试一些东西......
不用说,发生了很多变化。例如,新的是旧的和(较旧的)APIASP.NET Identity的替代品。MembershipSimpleMembership
在我之前构建的所有应用程序中,我从来没有机会使用 Membership 或 SimpleMembership。我总是最终创建自己的Login()方法,将提交的 ViewModel 转换为 POCO(使用 automapper),然后使用某种存储库来查找用户和密码。
作为回报,我将获得一个用户 POCO,该用户 POCO 稍后将被转换(使用自动映射器)为更小的 UserSession POCO。较小的 UserSession 将放置在 Session 中。
当然,我仍然会使用FormsAuthentication创建一个Encrypted Ticket并FormsAuthentication.SignOut()在用户想要注销时使用。
但我从未充分利用所Membership (or SimpleMembership)提供的东西。
我从来没有让我的 POCO 实现某种接口,也不必在我的 POCO 类库中添加对 Microsoft 库的引用。换句话说,我从来没有对任何事物产生过强烈的依赖。
我的问题如下:
通过我看到的示例,我不断看到新的 ASP.NET 标识创建(首先通过代码)一些表和字段。例如,该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 身份生成的实体时使新的基于声明的身份受益。
请随时为我指出正确的方向以进行澄清。