我一直在查看有关 MVC 4 中成员资格提供程序更改的各种 SO 问题、博客文章等。虽然我喜欢许多更改和事物的简化(尤其是开箱即用的外部登录)支持),我还没有找到一件看似简单的事情......
如何使用使用另一个数据源的自定义成员/角色提供者来覆盖成员资格/角色提供者?
我不想更换WebSecurity
或任何激烈的事情,因为它处理了我希望它处理的所有事情。(例如 Cookie 管理。)我不想做任何会破坏对外部登录提供程序的现有支持的事情,因为我的应用程序将它们与本地登录一起使用。我要做的就是在会员系统和它背后的数据库之间插入并自定义数据获取。
它默认创建的表是:
- 用户资料
- 网页_会员
- 网页_OAuthMembership
- 网页_角色
- 网页_UsersInRoles
虽然这可行,但我有理由在一些自定义对象后面抽象它并打破应用程序和数据库之间的耦合。(基本上,我有一些充满业务逻辑的自定义域模型应该处理所有这些,并且我希望成员/角色系统使用这些模型而不是数据库。这些模型可能会从数据库中获取它们的持久数据,它们可能不。那应该没关系。)
我找到的大多数自定义参考都声称它很容易做到,我所要做的就是修改UserProfile
模型,在各种调用中包含我的新自定义字段,并更新调用以InitializeDatabaseConnection
将其指向我的数据库模式。
但我没有使用数据库。(或者,更具体地说,就应用程序层而言,没有数据库之类的东西。只有我的域模型。)所以简单的定制并没有真正改变任何东西。
有没有办法在会员系统和数据库之间插入,这样我就可以为现有的会员提供者创建一个自定义数据提供者?