C# asp.net mvc 401重定向后出现未经授权的错误

C# asp.net mvc 401重定向后出现未经授权的错误,c#,asp.net-mvc,http,authentication,redirect,C#,Asp.net Mvc,Http,Authentication,Redirect,在用户被重定向后,我收到401未经授权的错误。 创建新用户后,用户将被重定向到另一个页面 public ActionResult SaveUser(UserViewModel userViewModel) { ModelState.Remove("IsDSA"); ModelState.Remove("IsAccountRepresentative"); var savedUser = SaveOrUpdateUser(ref userViewModel);

在用户被重定向后,我收到401未经授权的错误。

创建新用户后,用户将被重定向到另一个页面

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)
{
    ...
}

如何修复此错误?可能是因为身份验证cookie没有随重定向一起发送

这是因为您忘记了控制器上的Authorize属性

[Authorize]
public class UserAccessManagement: Controller {
    public ActionResult Index() {
        return View();
    }
}

这是因为您忘记了控制器上的Authorize属性

[Authorize]
public class UserAccessManagement: Controller {
    public ActionResult Index() {
        return View();
    }
}

因此,经过一整天的调查,我开始怀疑原因可能在Authorize属性或全局筛选器中,并开始思考IIS可能会以某种方式在重定向请求中返回401。但是我发现了其他一些重定向到Action的操作,它们很有效。此外,托管在其他IIS上的版本也存在同样的问题

然后我开始怀疑MVC项目中是否有任何授权配置,而不是默认配置,并在项目“authorize”中搜索,该项目没有给出任何意外的结果

但后来我想到了一个主意,通过搜索所有的解决方案“重定向”短语,我终于找到了问题的根源

因此,在应用程序_EndRequest上,状态代码被设置为401,并且错误类型的请求返回错误


我想搜索“401”也会有帮助,如果这些常量被命名,那么它们早就被找到了。因此,经过一整天的调查,我开始怀疑原因可能在Authorize属性或全局筛选器中,并开始思考IIS可能会在重定向请求中以某种方式返回401。但是我发现了其他一些重定向到Action的操作,它们很有效。此外,托管在其他IIS上的版本也存在同样的问题

然后我开始怀疑MVC项目中是否有任何授权配置,而不是默认配置,并在项目“authorize”中搜索,该项目没有给出任何意外的结果

但后来我想到了一个主意,通过搜索所有的解决方案“重定向”短语,我终于找到了问题的根源

因此,在应用程序_EndRequest上,状态代码被设置为401,并且错误类型的请求返回错误


我想搜索“401”也会有帮助,如果这些常量被命名,它们早就被找到了

您在控制器上有任何
[Authorize]
属性吗?调用
SaveUser
auth'd的用户是否已授权?@scg控制器上没有属性,调用
SaveUser
authorized的用户是否已在控制器上获得任何
[authorized]
属性?调用
SaveUser
auth'd的用户在控制器上没有属性,调用
SaveUser
authorized的用户添加了Authorize属性,但它仍然不工作。顺便说一句,全局过滤器中添加了Authorize属性您的实际场景是什么?您是否正在添加新用户,并且新添加的用户将访问web?场景是用户添加新用户,并在“创建页面”或“使用用户的页面”列表中返回。我猜新用户将要做的与重定向错误无关好的,请将MenuID转换为long,然后传递给新方法。希望它将工作添加到Authorize属性,但它仍然不工作。顺便说一句,全局过滤器中添加了Authorize属性您的实际场景是什么?您是否正在添加新用户,并且新添加的用户将访问web?场景是用户添加新用户,并在“创建页面”或“使用用户的页面”列表中返回。我猜新用户将要做的与重定向错误无关好的,请将MenuID转换为long,然后传递给新方法。希望它能起作用