Когда неавторизованные, недействительные страницы работают, но действительные не - PullRequest
0 голосов
/ 16 мая 2019

Если пользователь вошел в систему и перешел на действительную страницу, он переходит на страницу, как и ожидалось.

Если пользователь вошел в систему и перешел на неверную страницу, он переходит к NotFound.cshtml, как и ожидалось.

Если пользователь не вошел в систему и перешел на недопустимую страницу (например, http://dev.apphost.mycompany.com/my_app_path/hgfhfhjgfhf),, он переходит на Unauthorized.cshtml, как и ожидалось.

Если пользователь не вошел в систему и перешел на действительную страницу, я ожидаю, что он перейдет на Unauthorized.cshtml. Вместо этого, когда я пытаюсь в Firefox, страница пуста. Когда я пытаюсь в Chrome:

Эту страницу dev.apphost.mycompany.com невозможно найти

Веб-страница для адреса не найдена:

http://dev.apphost.mycompany.com/my_app_path/

HTTP ОШИБКА 404

... Почему?

Кроме того, такое поведение происходит только после публикации. При запуске с localhost все работает нормально.

Вот мой ErrorController:

[AllowAnonymous]
public class ErrorController : Controller
{
    private readonly IActiveUserService _activeUserSrv;

    public ErrorController(IActiveUserService activeUserSrv)
    {
        _activeUserSrv = activeUserSrv;
    }

    [Route("error/not-found")]
    public ActionResult NotFound()
    {
        var currUser = _activeUserSrv.GetActiveInternalUser();
        if (currUser == null)
        {
            return View("Unauthorized");
        }
        else
        {
            return View();
        }
    }

    [Route("error/unauthorized")]
    public ActionResult Unauthorized()
    {
        return View();
    }
}

Редактировать: По запросу я включу метод контроллера входа. Доступ к нему осуществляется из unauthorized.cshtml (и поэтому он не используется, так как моя проблема в том, что я не могу получить в unauthorized.cshtml).

[Authorize]
public class AccountController : Controller
{
    private readonly IAccountService _accountService;

    public AccountController(IAccountService srv)
    {
        _accountService = srv;
    }

    [Route("manualLogin")]
    [AllowAnonymous]
    public ActionResult ManualLogin(string username, string password)
    {
        var env = GetEnvFromHost();

        return _accountService.InternalManualLogIn(username, password, env)
            ? (ActionResult)RedirectToAction("Index", "Home")
            : new HttpStatusCodeResult(statusCode: 401);
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...