1
ASP.NET Identity 2.0 및 EF 6.1.1을 사용하여 MVC5 응용 프로그램을 구축하고 있습니다.IsInRole이 항상 false를 반환하는 이유는 무엇입니까?
이 내 현재 로그인 방법의 일부입니다 : 내가 UserManager.IsInRole을 명중 할 때까지
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
return View(model);
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true);
switch (result)
{
case SignInStatus.Success:
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user == null)
break;
if (!UserManager.IsInRole(user.Id, "OfficeUser"))
break; // << I always hit this line - even if the user is an OfficeUser
이 잘 작동(). 항상 false를 반환합니다.
해당 사용자가 로그인하지 않은 경우 IsInRole()이 실패합니다.하지만 SignInManager.PasswordSignInAsync()를 전달한 이후로는 정상적으로 처리되어야합니다.
그리고 네, 데이터베이스를 여러 번 확인하고 매우 신중하게;) 내 테스트 사용자와 내 테스트 역할 "OfficeUser"는 확실히 할당됩니다.
누구나 아이디어가 있습니까?
예, 작동 중입니다. 너무 고마워, DSR !! 방금 내 하루 (및 주말 :) 저장했습니다. – Ingmar