首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC登录ReturnUrl是否始终为空?

ASP.NET MVC登录ReturnUrl是否始终为空?
EN

Stack Overflow用户
提问于 2009-05-06 03:24:36
回答 3查看 42.3K关注 0票数 58

在ASP.NET MVC中使用窗体身份验证当尝试重新登录站点时,它会在查询字符串中放入一个ReturnUrl参数。我的登录操作方法接受"returnUrl“字符串。然而,returnUrl字符串似乎总是空的,即使它明确地在查询字符串中。有没有想过为什么会出现这种情况或可能的修复方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-06 03:30:36

也许您没有将ReturnURL参数包含到登录表单的操作属性中,从而在没有该参数的情况下发送到一个网址?

票数 28
EN

Stack Overflow用户

发布于 2010-04-04 03:45:51

我可以想到两种方法来处理登录和注销场景。戴夫·比尔概述了一种方法,上图。还有另一种方法,在许多情况下都有效。我在编写NerdDinner教程时用到了它。本教程为我们提供了一个注销功能,可以让您注销并带您回家。我不想那样做。我想要返回到我注销之前所在的页面。因此我修改了我的帐户控制器注销操作,如下所示

代码语言:javascript
复制
   public ActionResult LogOff()
    {
        FormsService.SignOut();
        return Redirect(Request.UrlReferrer.ToString());
    }

如果您想要覆盖此行为,您可以使用更多的方法传入returnUrl并对其进行测试。但我不需要这样。这样就达到了预期的效果。登录的工作方式与此类似。也许有一些方法可以使用MVC框架为我做这件事,但在我学会它们之前,这是非常简单和可靠的。

票数 3
EN

Stack Overflow用户

发布于 2009-05-06 08:58:49

尝试以下操作:

代码语言:javascript
复制
        public static MvcForm BeginForm(this HtmlHelper htmlHelper, string id)
    {
        string formAction = htmlHelper.ViewContext.HttpContext.Request.RawUrl;

        TagBuilder tagBuilder = new TagBuilder("form");

        tagBuilder.MergeAttribute("id", id);
        tagBuilder.MergeAttribute("action", formAction);
        tagBuilder.MergeAttribute("method", HtmlHelper.GetFormMethodString(FormMethod.Post), true);

        HttpResponseBase httpResponse = htmlHelper.ViewContext.HttpContext.Response;
        httpResponse.Write(tagBuilder.ToString(TagRenderMode.StartTag));

        return new MvcForm(htmlHelper.ViewContext.HttpContext.Response);
    }

首先,确保您已在web.config中设置了登录url,然后,确保您的登录表单不包含任何类似操作的内容,例如:

查看:

如果指定action,则返回url将始终为null:

控制器:

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SignIn(string userName, string password, bool? rememberMe, string returnUrl)
{
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/827905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档