Asp.net

如何在沒有實體框架的情況下使用 ASP.NET Identity 3.0 [關閉]

  • August 3, 2015

我現在看到的所有 ASP.NET Identity 3.0 範例都使用實體框架來儲存與使用者相關的數據。

是否有任何不使用實體框架且ApplicationUser類不是從哪裡派生的範例Microsoft.AspNet.Identity.EntityFramework.IdentityUser

在 ASP.NET Identity 2.x 中,需要實現IUser介面。現在似乎沒有這樣的介面 - 所以我們不確定如何User正確定義類。幾乎沒有關於這個主題的文件。

第二個問題是AddIdentity呼叫Startup.ConfigureServices。它與命名空間中的特定類非常相關,Microsoft.AspNet.Identity.EntityFramework並且不清楚如何在沒有這些類的情況下註冊身份服務。

我已經在我的項目中實現了,你要實現的主要是 UserStore 和 RoleStore

我的 SiteUser 和 SiteRole 類不繼承任何東西

主要是在讓asp.net身份添加自己的服務之前添加自己的服務

services.TryAdd(ServiceDescriptor.Scoped<IUserStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserPasswordStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserEmailStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserLoginStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserRoleStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserClaimStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserPhoneNumberStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserLockoutStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IUserTwoFactorStore<SiteUser>, UserStore<SiteUser>());
services.TryAdd(ServiceDescriptor.Scoped<IRoleStore<SiteRole>, RoleStore<SiteRole>());

一些相同的介面將在此處註冊,但如果它們先註冊,它將使用您的介面

services.AddIdentity<SiteUser, SiteRole>();

引用自:https://stackoverflow.com/questions/31795792