Я пробовал создать простой фильтр, чтобы узнать, находится ли пользователь в роли «Системный администратор», в основном короткая рука для выполнения [Authorize(Roles = "System Administrator")]
. Я думал, что это будет довольно просто, но я также довольно новичок в MVC, поэтому, возможно, я что-то пропускаю.ASP.Net Identity 2 - Почему мой фильтр не работает?
Вот мой код:
using System.Web.Mvc;
namespace site_redesign_web.Filters
{
public class SystemAdminFilter : ActionFilterAttribute
{
string SysAdminRole = "System Administrator";
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.RequestContext.HttpContext.User != null)
{
var userSysAdmin = filterContext.RequestContext.HttpContext.User.IsInRole(SysAdminRole) == true;
filterContext.ActionParameters["IsSysAdmin"] = userSysAdmin;
}
}
}
}
Может кто-нибудь предложить, где я буду неправильно? Огромный плюс будет, если человек не является системным администратором, он направит их на Home/NoPermissions
.
Спасибо!
вы можете выставить весь класс вашего фильтра? – Aravind
Обновлен, чтобы показать весь класс. Спасибо! – ajtatum
Это сообщение может быть полезно для понимания лучше https://code.msdn.microsoft.com/ASPNET-MVC-5-Security-And-44cbdb97 – bijayk