Переопределить доступ запрещен маршрут / путь с Identity Server 4 / asp.net core 2.2 - PullRequest
0 голосов
/ 12 июня 2019

Очень плохо знаком с Identity Server / ASP Identity, поэтому я надеюсь, что объясню ситуацию достаточно хорошо.

У меня возникла проблема, когда мои веб-приложения пытаются перейти к контроллеру Account / AccessDenied и действию, если они признаны несанкционированными ... но такого точного контроллера и действия не существует.

Я попытался сделать следующее, но я не уверен, что он действительно делает то, что мне кажется

    services.ConfigureApplicationCookie(options =>
    {
        options.AccessDeniedPath = $"{config.IDServUrl}/Identity/Account/AccessDenied";
        options.LoginPath = $"{config.IDServUrl}/Identity/Account/Login";
        options.LogoutPath = $"{config.IDServUrl}/Identity/Account/Logout";

    });

Мои контроллеры, или Действия внутри, имеют атрибут Authorize, и я блокирую их с помощью политики. Эта часть работает нормально, и если пользователь авторизован, он успешно входит в приложение / перенаправляет его в приложение.

Что происходит сейчас, если не авторизовано:

  1. перейти в веб-приложение (клиент IDSrv)
  2. перенаправлен на Identity Server
  3. войти в Identity Server
  4. Если не авторизовано, появляется ошибка 404, потому что она не может найти https://myapp/account/accessdenied

Account/AccessDenied не существует нигде в моем приложении и не существует в моем приложении Identity Server. Identity Server использует /Identity/Account/AccessDenied, если пользователь не имеет доступа к чему-либо.

Все это по умолчанию - я ничего не изменил по этому поводу.

Итак, я пытаюсь выяснить, как заставить мое приложение перейти на https://MyIDSrvApp/Identity/Account/AccessDenied (поскольку оно уже существует), или если мне нужно вручную создать контроллер учетной записи с действием AccessDenied в каждом отдельном приложении, которое защищено IDSrv.

Мне просто немного непонятно, как это происходит, как лучше всего с этим справляться, и откуда мои приложения вообще получают это /account/accessdenied, поскольку я нигде не настраиваю его вручную.

...