Я создаю собственный асинхронный фильтр, который будет перенаправлять на страницу входа в систему, если сеанс имеет значение null, и перенаправлять на домашнюю страницу, если роль недопустима.
public class ExampleFilter : Attribute, IAsyncActionFilter
{
public string Role { get; set; }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
string role = await GetRole(context);
if (context.HttpContext.Session.GetString("Token") == null)
{
context.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{"Controller", "Account"},
{"Action", "Login"}
});
}
else if (role != Role)
{
context.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{"Controller", "Home"},
{"Action", "Index"}
});
}
}
}
И это работает, но когда он авторизует, эта страница белая и в консоли выдается «Uncaught Error at contentscript.js: 1».