У меня есть два типа ролей [Admin, HelpDeskAdmin].
У меня одно представление входа в систему (оба пользователя переходят по одной и той же ссылке для входа в систему), и я хочу проверить свою роль после входа в систему и перенаправитьих соответствующие страницы администратора после аутентификации.Приведенный ниже код не идентифицирует зарегистрированного пользователя как входящего в роль в первый раз и перезагружает страницу входа, при втором входе в систему она перенаправляет правильно.
Имеет ли это какое-то отношение к файлу аутентификациине быть на месте, когда он проверяет в первый раз?Как я мог выполнить этот сценарий?
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
if (Roles.IsUserInRole("Admin"))
{
//go to admin landing page
return RedirectToAction("Index", "Manage");
}
else if (Roles.IsUserInRole("HelpDesk"))
{
//go to helpdesk landing page
return RedirectToAction("Index", "Interview");
}
else /******FIRST TIME THROUGH IT ALWAYS GOES HERE *******/
return RedirectToAction("Index", "Home"); //not in any of those roles
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}