Я создаю интернет-приложение ASP.NET MVC 4.Аутентификация на основе ролей с идентификатором aspnet в ASP.NET MVC 4
В этом приложении я создал страницу входа, которую любой пользователь может войти в систему, а затем разрешил перенаправлять пользователя на разные страницы в зависимости от их роли.
ASP.NET Identity - это система членства здесь.
Это мой метод Войти Контроллер:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)
{
if (user.ConfirmedEmail == true)
{
await SignInAsync(user, model.RememberMe);
if (String.IsNullOrEmpty(returnUrl))
{
if (UserManager.IsInRole(user.Id, "HEC_Admin"))
{
return RedirectToAction("Index", "HEC");
}
//role Admin go to Admin page
if (UserManager.IsInRole(user.Id, "HEI_User"))
{
return RedirectToAction("Index", "HEI");
}
}
else
{
return RedirectToLocal(returnUrl);
}
}
else
{
ModelState.AddModelError("", "Confirm Email Address.");
}
}
else
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Это ХЕИ контроллер Класс:
public class HEIController : Controller
{
//
// GET: /HEI/
[Authorize(Roles = "HEI_User")]
public ActionResult Index()
{
return View();
}
}
Это мой HEC контроллер Класс:
public class HECController : Controller
{
//
// GET: /HEC/
[Authorize(Roles = "HEC_Admin")]
public ActionResult Index()
{
return View();
}
}
, когда я удаляю [ Авторизовать (Роли = "HEC_Admin")] над действием индекса в HECC ontroller класс и когда я удалить [Авторизовать (Roles = «HEC_User»)] выше действия индекса в классе HEIController это работает отлично,
но как ограничить несанкционированный доступ к этим страницам?
Спасибо, много работы, есть какая-либо комбинация между вашим подходом и этим http://stackoverflow.com/questions/31001039/forgot-password-method-edit-user-method-not-working – kez