Я занимаюсь разработкой приложения ASP.NET MVC 3 и использую проверку подлинности с помощью форм для обработки всех функций входа в систему. Я создал 3 роли пользователя - «Менеджер», «Клиенты» и «Репетиторы», и пользователи будут перенаправлены на разные точки зрения в зависимости от их роли. Мой логин работал нормально, прежде чем я закодировал роли. Вот код из моего контроллера:
public class AccountController : Controller
{
//
// GET: /Account/LogOn
public ActionResult LogOn()
{
return View();
}
[Authorize(Roles="Manager")]
public ActionResult Index()
{
return View();
}
[Authorize(Roles = "Tutors")]
public ActionResult TutorMain()
{
return View();
}
[Authorize(Roles = "Clients")]
public ActionResult ClientMain()
{
return View();
}
//
// POST: /Account/LogOn
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
if (User.IsInRole("Manager"))
return RedirectToAction("Index", "Account");
if (User.IsInRole("Tutors"))
return RedirectToAction("TutorMain", "Account");
if (User.IsInRole("Clients"))
return RedirectToAction("ClientMain", "Account");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Пожалуйста, помогите мне выяснить, почему это происходит.
Спасибо,
Amy