- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Mediatr 库和模式来实现 Identity...
我使用的代码在 dotnetcore 2.x 和 identity 2.2 中确实有效,但在 dotnetcore 3.x 和 identity 3.1.1 中被破坏了...
我的应用程序类库是 netstandard2.1 并设置了以下依赖项。
<PackageReference Include="FluentValidation.AspNetCore" Version="8.6.1" />
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.1" />
我有这样的请求处理程序;
public class Handler : IRequestHandler<Query, AppUser>
{
private readonly UserManager<AppUser> _userManager;
private readonly SignInManager<AppUser> _signInManager;
public Handler(UserManager<AppUser> userManager, SignInManager<AppUser> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
public async Task<AppUser> Handle(Query request, CancellationToken cancellationToken)
{
var user = await _userManager.FindByEmailAsync(request.Email);
if (user == null)
{
throw new Exception("Unauthorized");
}
// var result = await _signInManager.CheckPasswordSignInAsync(user, request.Password, false);
var result = await _userManager.CheckPasswordAsync(user, request.Password);
if (result)
{
return user;
}
throw new Exception("Unauthorized");
}
}
我在这里遇到的问题是我无法再解析 SignInManager,我不确定为什么。我也找不到太多关于身份版本之间的任何重大变化的信息。SignInManager 去哪儿了?我认为 UserManager 在同一个命名空间中并且 UserManager 解析得很好。如您所见,我现在非常困惑,我正准备用欺骗手段脱身,但我不适应。
在我的 API 项目中使用相同的依赖项,我可以使用相同的命名空间引用 SignInManager,并且我可以使用它直接在 Controller 中登录。我如何将其分离到 Mediatr 处理程序中?
最佳答案
从 3.0 版开始,ASP.NET Core 不再通过 NuGet 完全分发。相反,它作为 .NET Core 运行时的一部分作为 共享框架 提供。只有可选包,如 Microsoft.AspNetCore.Identity.EntityFrameworkCore
仍然通过 NuGet 分发。但是,这些包没有定义将自动工作的 transient 依赖项,因此您仍然需要正确引用此共享框架才能使用这些类型。
为此,您需要将项目切换到目标 netcoreapp3.1
,因为 ASP.NET Core 仅在 .NET Core 上运行,不能与 .NET Standard 一起使用。
完成后,您可以使用框架引用 来引用共享框架。所以你的项目文件应该是这样的:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FluentValidation.AspNetCore" Version="8.6.1" />
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.1" />
</ItemGroup>
</Project>
关于asp.net-core - 找不到类型或命名空间 SigninManager<> Identity 3.1.1 Mediatr 8.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60249514/
在ASP.NET Core 7应用程序中,可以像这样扩展IdentityUser:。我创建了一个数据库上下文:。我正在配置我的主机以使用它:。在调试运行中的应用程序时,Request.User的类型为
使用 Moq 和 xUnit 进行单元测试的新手。我正在尝试模拟在 Controller 构造函数中使用的 SignInManager 来构建单元测试。我可以找到的 SignInManager 构造函
我正在尝试使用 ASP.NET Identity 在 Web 应用程序上启用授权和身份验证。我正在尝试使用 SignInManager,但当它调用 PasswordSignInAsync 时,它正在寻
我按如下方式设置身份: services.AddIdentity( c => { c.Password.RequireDigit = false; c.
我有一个 WebAPI 应用,我正在使用第 3 方身份验证器(Firebase 身份验证)。 我的身份验证有效,但一旦用户登录到我的服务器,我想将凭据和用户数据保存到我的 ASP.NET Identi
在ASP.NET Core和OAuth中的ASP.NET Identity中,我在登录回调中具有以下代码段: var info = await _signInManager.GetExternalLo
使用 Azure 网站(标准层)并且站点加载正常(设置为始终打开)。网站/代码经过优化和预编译。 第一次调用 SignInManager.PasswordSignInAsync 很慢(大约 2 到 5
我正在实现 asp.net Identity。我用 int 主键而不是默认的 String 覆盖了默认类。我按照以下文章这样做:Article 对于所有代码,我深表歉意,但是我已经被这个愚蠢的错误困住
AccountController.cs 包含 AccountController 类。该类的 Login 方法失败。具体来说, var result = await SignInManager.Pa
我正在探索 SignInManager 类。但是MSDN上给出的信息是非常无用的。它只说明提供的方法和属性是什么。 我正在寻找的是, 什么是登录管理器? 如何使用它? 我有自己的数据库,其中包含与凭据
是否可以使用 SignInManager没有一些 HTTPContext ?我正在制作 Blazor 服务器端应用程序,我需要让最终用户使用 PasswordSignInAsync() 登录SignI
在我的应用程序中,我使用 ASP.NET Identity。一切都工作正常,但通过测试,我发现以下命令会产生许多数据库访问:SignInManager.PasswordSignInAsync: var
在我的应用程序中,我想添加其他条件以便用户登录。例如,出于某种原因,允许管理员“锁定”用户帐户。当帐户被锁定时,用户将无法登录。请注意,这与多次登录尝试失败导致的“锁定”不同。管理员可以删除锁定条件。
我正在尝试了解如何注入(inject) UserManager 和 SignInManager。我已经在我的应用程序中安装了 Ninject,并按以下方式使用它: 请将此视为一个全新的项目。在 Sta
我正在使用Identity 3.0创建Web应用程序,并且SignInManager PasswordSignInAsync()方法有问题。我就像在文档中一样使用它,但是它不返回任何内容(应用程序代码
我正在使用Microsoft.NetCore.App v1.1.0(2016年11月16日),并已构建了一个标准的MVC Web应用程序,并根据Microsoft Docs的建议在其中添加了Micro
将我的应用程序从 .NET Framework 4.6 转换为 .NET Core 2 后,我对数据库进行了请求的更改以支持新的身份模型,即添加到 AspNetUsers 和新表的几个字段。 记录在
我一直在使用此代码登录: // // GET: /Account/Login [AllowAnonymous] public ActionResult Login(string returnUrl)
我在一个由dotnet核心2.1 API后端和Vue.js SPA前端组成的应用程序上的身份验证时遇到一些奇怪的问题。 我已经准备好所有关键元素和层,可以使用Auth API Controller 在
有关新的 Microsoft 身份框架的文档似乎有点稀疏。我目前正在修改标准项目模板,在尝试使用两因素身份验证登录用户时遇到了一些奇怪的行为。 我们只允许通过短信进行 2FA,因此我绕过了用户选择他们
我是一名优秀的程序员,十分优秀!