Asp.net mvc 登录url中的ReturnUrl参数

Asp.net mvc 登录url中的ReturnUrl参数,asp.net-mvc,Asp.net Mvc,我正在使用MVC5开发一个应用程序。我已经为登录功能编写了代码。当我尝试启动应用程序时,登录页面被添加了一个查询字符串参数ReturnUrl。这是我的密码: public ActionResult Login() { var authentication = Authentication; if (Request.HttpMethod == "POST")

我正在使用MVC5开发一个应用程序。我已经为登录功能编写了代码。当我尝试启动应用程序时,登录页面被添加了一个查询字符串参数ReturnUrl。这是我的密码:

            public ActionResult Login()
            {
                var authentication = Authentication;
                if (Request.HttpMethod == "POST")
                {
                    //code for user validation
                }

                return View();
            }

我找不到将ReturnUrl参数添加到url的代码。有谁能帮我找到添加ReturUrl参数的代码吗?

这是asp.net身份验证的默认行为。“returnUrl”是在您尝试访问私有url时添加的。如果要删除,则需要authorize类的自定义实现。

默认情况下,
AuthorizeAttribute
类是
System.Web.Mvc
命名空间的一部分(请参阅Github存储库:)。该方法会导致登录重定向,其中有
HandleUnauthorizedRequest

protected virtual void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
    // Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs.
    filterContext.Result = new HttpUnauthorizedResult();
}
来自上述方法的HTTP 401状态代码响应将触发
FormsAuthenticationModule
(请参阅下面的参考资料),其中
OnLeave
方法使用
FormsAuthentication重定向到登录URL。ReturnUrlVar
属性包括:

strRedirect = loginUrl + "?" + FormsAuthentication.ReturnUrlVar + "=" + HttpUtility.UrlEncode(strUrl, context.Request.ContentEncoding);

// Do the redirect
context.Response.Redirect(strRedirect, false);

要覆盖此行为(包括删除
ReturnUrl
part),请从
AuthorizeAttribute
类创建一个授权类,例如(这是一个示例实现):

然后,您可以实现如下自定义授权属性:

[CustomAuthorizeAttribute]
public ActionResult UserPage()
{
    return View();
}

注意:在所有需要用户登录身份验证的页面上使用
AuthorizeAttribute
,对于登录页面,请改用
AllowAnonymousAttribute

相关参考资料:


检查项目控制器文件夹中的AccountController.cs。上面显示的代码片段是从AccountController.cs复制的。但我在那里找不到任何与ReturnUrl相关的代码。详细问题:我已经为ForgetPassword创建了一个页面,并且在那里添加了登录页面的链接。当我重定向回登录页面时,并没有向url添加ReturnUrl参数@Html.ActionLink(“转到登录页面”、“登录”、“帐户”),我使用此代码在ForgetPassword页面中创建登录页面的链接。在哪里可以找到授权类?
AuthorizeAttribute
默认情况下,类是System.Web.Mvc命名空间的一部分,您可以为自定义授权功能创建从
AuthorizeAttribute
扩展而来的授权类。这就是我所说的,我在哪里共享我的代码,但山本哲也已经共享了。感谢您的回复
[CustomAuthorizeAttribute]
public ActionResult UserPage()
{
    return View();
}