如何在 ASP.net 中使用应用程序用户管理器
本文关键字:应用程序 用户 管理器 ASP net | 更新日期: 2023-09-27 18:34:51
我在应用程序中创建了一个名为ProfileContoller
的控制器。在这个控制器中,我需要创建一个ApplicationUserManager
实例,但我不知道如何创建一个新的实例。我尝试了下面的代码:
private ApplicationUserManager _userManager = Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
但是我收到此错误:
当前我上下文中不存在名称
Current
的第一个问题是我该怎么做?我将访问以下代码行:
return View(await _userManager.FindByNameAsync(username));
我也使用UnityContainer
.我关于这个问题的第二个问题是:我是否也可以注册与接口IUser
或IUserStore
1 关联的ApplicationUserManager
。
更新:
后来我发现有这样的东西:
private UserManager<ApplicationUser> _userManager = UserManager<ApplicationUserManager>();
位它给我这个错误:
不可调用的成员
UserManager<TUser>
不能像方法一样使用。
有了这个额外的"用户管理器",我看不到树木的木头。所以你能再一次解释一下所有"用户管理器"的含义以及它们的用途吗?
笔记:
1 我不知道这两者之间的区别,所以如果你愿意,你能解释一下吗?
这对
我有用:
using System.Web; //make sure you have this using
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
if (_userManager == null && HttpContext == null)
{
return new ApplicationUserManager(new Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>(db));
}
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
我没有
在VS中看过这个,所以我不是100%,但是您收到的错误消息
当前上下文中不存在名称"当前">
可能只是因为当前是HTTP上下文的一部分
尝试
public class ProfileController : Controller
{
private ApplicationUserManager _userManager;
public ProfileController()
{
_userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
因此,此处的更改是_userManager正在声明但未设置。然后,我们在类的构造函数中设置它。