asp.net - mvc 项目中的 webapi - 如何从 ApiController 访问用户管理器?
问题描述
我有一个 MVC 项目,它还包含一个 webapi 控制器。在 MVC 控制器中,我可以访问为 MVC 应用程序初始化的 ApplicationUserManager 以执行诸如生成密码重置令牌之类的操作。
我现在需要从 webapi 控制器向用户发送一封带有密码重置令牌的电子邮件,但不知道如何从 mvc 应用程序访问已经初始化的用户管理器。
我添加了 Microsoft.AspNet.WebApi.Owin NuGet 包,它允许我获取 UserManager,如下所示:
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
if (_userManager == null)
{
var owinCtx = Request.GetOwinContext();
_userManager = owinCtx.GetUserManager<ApplicationUserManager>();
}
return _userManager;
}
private set => _userManager = value;
}
但这显然不是使用 Startup.Auth.cs 中的 MVC 应用程序的设置进行初始化的。与该await UserManager.GeneratePasswordResetTokenAsync(user.Id)
用户管理器无关。
如何使用 MVC 应用程序中初始化的 UserManager,或者在我的 webapi 中配置请求上下文以初始化与 MVC 应用程序中相同的内容?
解决方案
推荐阅读
- kiwi-tcms - 升级到 Kiwi 5.3.1 后无法通过 Kiwi TCMS Python API 创建测试运行
- xslt - 开始运行撒克逊
- r - 编写函数以将行添加到数据框中
- vba - 如果 IsNumeric(num) And Len(num) > 1 计算一个数字的 false ?
- python - Pandas,将元组列表转换为 DataFrame 尴尬的列标题。
- smalltalk - Smalltalk 的 message to:do: 是如何在幕后实现的?
- data-structures - 用于树的孩子的适当数据结构
- arrays - VBA循环将行添加到被错误覆盖的数组?
- html - 如何更改角度材料表单字段中所需生成的asterick css?
- android - 如何在新活动中正确打开 pdf?