Перенаправить на страницу ошибки вместо страницы входа для ложного ответа AuthorizationManager в ASP .NET - PullRequest
0 голосов
/ 05 июня 2018

Мы реализовали собственный 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...