asp. net mvc 401 Несанкционированная ошибка после перенаправления - PullRequest
1 голос
/ 08 января 2020

Я получаю 401 несанкционированную ошибку после перенаправления пользователя. enter image description here

Пользователь перенаправляется на другую страницу после создания нового пользователя.

public ActionResult SaveUser(UserViewModel userViewModel)
{
    ModelState.Remove("IsDSA");
    ModelState.Remove("IsAccountRepresentative");

    var savedUser = SaveOrUpdateUser(ref userViewModel);

    TempData["Status"] = ViewBag.Status;
    TempData.Keep("Status");

    var MenuId = Request.QueryString["MenuID"];

    TempData["MenuId"] = MenuId;
    TempData.Keep("MenuId");

    if (userViewModel.AddAnotherUserRequseted && savedUser != null)
    {

        return RedirectToAction("CreateNewUser", new { MenuID = Request.QueryString["MenuID"] });
    }

    return RedirectToAction("UserAccessManagement", "UserAccessManagement", new { MenuID = Request.QueryString["MenuID"] });
}

public ActionResult UserAccessManagement(string TabName, long MenuID)
{
    ...
}

Как я могу исправить эту ошибку? Может быть, причина в том, что куки аутентификации не отправляются с перенаправлением?

Ответы [ 2 ]

2 голосов
/ 08 января 2020

Это потому, что вы забыли атрибут Authorize на контроллере

[Authorize]
public class UserAccessManagement: Controller {
    public ActionResult Index() {
        return View();
    }
}
0 голосов
/ 08 января 2020

Итак, после целого дня исследования я начал сомневаться в том, что причина может быть в Атрибуте Авторизации или глобальных фильтрах, и начал думать, что, возможно, IIS каким-то образом возвращает 401 в запросах на перенаправление. Но некоторые другие действия с RedirectToAction были найдены мной, и они сработали. Помимо версий, размещенных на другом IIS, была та же проблема

Затем я начал задумываться, есть ли какая-либо конфигурация авторизации в проекте MVC, отличная от стандартной, и искал в проекте "authorize", который не дал никаких неожиданные результаты

Но затем мне пришла в голову идея найти во всем решении фразу «перенаправление», и я наконец нашел root проблемы ...

enter image description here

Таким образом, в Application_EndRequest StatusCode устанавливается на 401 и возвращается ошибка для неправильного типа запроса

Я думаю, поиск "401" также поможет и если бы константы были названы, они были бы найдены ранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...