有了新版本的 VS 2013 RTM 和 asp.net mvc 5.0,我决定尝试一些东西......
不用说,发生了很多变化。例如,新的是旧的和(较旧的)APIASP.NET Identity
的替代品。Membership
SimpleMembership
在我之前构建的所有应用程序中,我从来没有机会使用 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 身份生成的实体时使新的基于声明的身份受益。
请随时为我指出正确的方向以进行澄清。