簡體   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