역할을 만들기 위해 ASP.NET ID 2를 사용했지만 HttpContext.GetOwinContext().GetUserManager<AppRoleManager>()
의 결과가 null입니다.HttpContext.GetOwinContext(). GetUserManager <AppRoleManager>() return null
그런 다음 역할을 만들 수 없습니다.
이 문제를 어떻게 해결할 수 있습니까?
public class MVCController : Controller
{
public MVCController()
{
}
public AppRoleManager RoleManager // returns null ?!
{
get
{
return HttpContext.GetOwinContext().GetUserManager<AppRoleManager>();
}
}
public User CurrentUser
{
get
{
string currentUserId = User.Identity.GetUserId();
User currentUser = DataContextFactory.GetDataContext().Users.FirstOrDefault(x => x.Id.ToString() == currentUserId);
return currentUser;
}
}
public IAuthenticationManager AuthManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
public AppUserManager UserManager
{
get
{
return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();
}
}
}
내 컨트롤러 :
public class RoleAdminController : MVCController
{
[HttpPost]
public async Task<ActionResult> CreateRole([Required]string name)
{
if (ModelState.IsValid)
{
if (RoleManager != null) // RoleManager is null, why?!
{
IdentityResult result = await RoleManager.CreateAsync(new Role { Name = name });
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
AddErrorsFromResult(result);
}
}
}
return View(name);
}
}
AppRoleManager : 당신이 ApplicationUserManager을 만들 수있는 방법을 OwinContext 제공 놓친 대부분의 경우
public class AppRoleManager : RoleManager<Role, int>, IDisposable
{
public AppRoleManager(RoleStore<Role, int, UserRole> store)
: base(store)
{
}
public static AppRoleManager Create(IdentityFactoryOptions<AppRoleManager> options, IOwinContext context)
{
return new AppRoleManager(new RoleStore<Role, int, UserRole>(DataContextFactory.GetDataContext()));
}
}
'HttpContext.GetOwinContext()를 시도하십시오. Get(); ' –
trailmax
@trailmax : null을 반환합니다. – Jahan
Get과 GetUserManager의 차이점은 무엇입니까? – mjohnsonengr