gpt4 book ai didi

c# - 我如何依赖注入(inject) SignInManager?

转载 作者:行者123 更新时间:2023-12-05 09:12:57 28 4
gpt4 key购买 nike

我有一个 WebAPI 应用,我正在使用第 3 方身份验证器(Firebase 身份验证)。

我的身份验证有效,但一旦用户登录到我的服务器,我想将凭据和用户数据保存到我的 ASP.NET Identity 表中。

如果我在我的 Startup.cs 文件中调用这一行,我似乎能够使用 UserManager 创建帐户

services.AddIdentityCore<ApplicationUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();

这允许我在我的构造函数中添加 UserManager 而无需添加所有登录页面和默认的 cookie 身份验证方案,如果我调用 AddIdentity() 通常会得到

但是,当我像这样在我的构造函数中添加 SignInManager 时

public ValuesController(SignInManager<ApplicationUser> signInManager)

我似乎仍然遇到此错误。

An unhandled exception has occurred while executing the request. System.InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.SignInManager`1[mvcWithAuth.Data.ApplicationUser]' while attempting to activate 'testWebAPIFB.Controllers.ValuesController'.

这似乎意味着 AddIdentityCore 没有添加 SignInManager。如何将 SignInManager 添加为要依赖注入(inject)的类?

最佳答案

This seems to mean that AddIdentityCore doesn't add SignInManager.

没错。如果你查看Addidentity的源代码和 AddIdentityCore ,你会发现 AddIdentityCore 只注册了 UserManager 而没有 SignInManager

要使用 AddIdentityCore 添加 SignInManager,您可以尝试:

IdentityBuilder builder = services.AddIdentityCore<ApplicationUser>();

builder = new IdentityBuilder(builder.UserType, builder.Services);

builder.AddEntityFrameworkStores<ApplicationDbContext>();

builder.AddSignInManager<SignInManager<ApplicationUser>>();

引用.Net Core 2.0 Web API using JWT - Adding Identity breaks the JWT authentication

关于c# - 我如何依赖注入(inject) SignInManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57177109/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com