繁体   English   中英

忽略ASP .Net MVC 5 Identity中的用户角色

[英]Ignore user roles in ASP .Net MVC 5 Identity

我目前正在使用ASP .Net MVC 5 Identity framework来管理我的简单MVC 5应用程序中的用户身份验证。 我的数据库包含5个与身份相关的表:

dbo.AspNetUsers
dbo.AspNetRoles
dbo.AspNetUserRoles
dbo.AspNetUserClaims
dbo.AspNetUserLogins

我要实现的基本上是删除AspNetRolesAspNetUserRoles (这只是一个关系表)和AspNetUserClaims 只留下:

dbo.AspNetUsers 
dbo.AspNetUserLogins

因为我目前正在使用基于OAuth2.0的用户登录系统。 我不需要角色。 我只想知道该用户是他是否登录。 我的应用程序中没有管理员,管理员或其他用户角色。 如何将它们从应用程序中删除,仍然能够将Identity框架用于用户授权/身份验证和OAuth? 首先有可能吗?

我不知道执行此操作的方法。

您要做的是从Identity中删除一些不可或缺的部分。 由于最终是由Entity Framework生成表,因此您可以通过基于身份代码滚动自己的模型,剪掉不需要的部分来实现所需的功能,但我认为您正在做花费大量时间和精力来解决问题,以使其正常工作。

我想我会保留下去,然后将其归结为将来验证您的应用程序。

是的,您可以轻松完成此操作。 真正的原因是为什么? 这些东西已经创建,您需要进行其他工作才能将其删除。 如果不需要它们,请不要使用它们。

如果您是一个纯粹主义者,那么这些就是改变这一点的必要步骤...

如果查看一下Microsoft.AspNet.Identity命名空间,您将看到另一个名为Microsoft.AspNet.Identity.EntityFramework命名空间。 此名称空间本质上是“默认的处理方式”。 删除并使用您自己的事物实现替换对此命名空间的所有引用。

这将包括...

  1. public class IdentityDbContext<TUser>
  2. public class IdentityUser
  3. public class UserStore<TUser>
  4. 其他?

因此,您需要创建自己的等效项,关键驱动程序是UserStore ,它是Identity与您自己的数据库之间的接口。

使用数据库优先方法编写了有关此问题的更多详细信息的答案 ,但这也适用于代码优先(进行了一些修改)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM