Мы реализовали собственный AuthorizationManager.Вместо того чтобы помещать логику в код, мы разработали хранимую процедуру, которая проверяет роль пользователя по таблице с контроллерами и действием и возвращает 0 или 1 для доступа.Затем AuthorizationManager обрабатывает результат и возвращает значение true или false.Все это работает хорошо, но когда он возвращает false, он автоматически перенаправляет на страницу входа в систему и просит пользователя войти в систему даже после того, как пользователь прошел аутентификацию.Можно ли переопределить это поведение и перенаправить на страницу ошибки с ViewBag, содержащим сообщение об ошибке.Я посмотрел в Интернете, и я не вижу ничего, чтобы найти.
public class AuthorizationManager : ClaimsAuthorizationManager
{
private testDbContext db = new testDbContext();
public override bool CheckAccess(AuthorizationContext context)
.,,,.
string username = System.Web.HttpContext.Current.Session["Username"].ToString();
var AuthoriseYN = db.Database.SqlQuery<AuthoriseViewModel>("EXEC spControllerActionRole @Controller, @Action, @Username",
new System.Data.SqlClient.SqlParameter("Controller", resrce.Value),
new System.Data.SqlClient.SqlParameter("Action", action.Value),
new System.Data.SqlClient.SqlParameter("Username", username)
).ToList();
bool authorise = AuthoriseYN[0].Authorise;
if (authorise == true)
{
return true;
}
return false