我目前正在使用ASP .Net MVC 5 Identity framework来管理简单MVC 5应用程序中的用户身份验证。“我的数据库”包含5个与身份相关的表:
dbo.AspNetUsers
dbo.AspNetRoles
dbo.AspNetUserRoles
dbo.AspNetUserClaims
dbo.AspNetUserLogins我想要实现的基本上是删除AspNetRoles、AspNetUserRoles(它只是一个关系表)和AspNetUserClaims。只可离开:
dbo.AspNetUsers
dbo.AspNetUserLogins因为我目前正在开发基于OAuth2.0的用户登录系统。我不需要角色。我只想知道用户是否登录。我的应用程序中没有经理、管理员或其他用户角色。如何将它们从我的应用程序中删除,并且仍然能够使用身份框架进行用户授权/身份验证和OAuth?首先,这有可能吗?
发布于 2014-11-26 02:07:57
我不知道该怎么做。
你想要做的是从身份中删除一些完整的部分。因为它最终是实体框架生成表,所以你可以通过基于身份代码的滚动你自己的模型来实现你想要做的事情,剪掉你不需要的部分--但我认为你会花费大量的时间和精力在死胡同中努力让它正常工作。
我想我会把它放在一边,然后把它记在将来的打样你的申请上。
发布于 2014-11-26 07:08:55
是的,你可以做到这一点,没有太多的困难。真正的原因是为什么?这些东西已经创建好了,您需要进行额外的工作来删除它们。如果你不需要它们,就不要使用它们。
如果你是个纯粹主义者,那么这些是改变这种状况所必需的步骤.
如果您查看Microsoft.AspNet.Identity名称空间,您将看到另一个名为Microsoft.AspNet.Identity.EntityFramework的名称空间。这个命名空间本质上是“默认的做事方式”。用您自己的实现删除并替换对此命名空间的所有引用。
这包括..。
public class IdentityDbContext<TUser>public class IdentityUserpublic class UserStore<TUser>因此,您需要创建自己的对应程序,关键驱动程序是UserStore,它是与您自己的数据库的标识之间的接口。
关于使用DB优先方法的更多细节的I wrote an answer,但这也适用于代码优先(有一些修改)
https://stackoverflow.com/questions/27139945
复制相似问题