加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – FormsAuthentication.RedirectFromLoginPage()如

发布时间:2020-12-16 04:08:12 所属栏目:asp.Net 来源:网络整理
导读:它不会返回视图.事实上,Action在调用之后仍然需要返回一个视图……那么发生了什么? 解决方法 如果要使用FormsAuthentication系统,则需要切换到此行(隐式使用returnUrl参数). return Redirect(FormsAuthentication.GetRedirectUrl(model.UserName,true)); 您
它不会返回视图.事实上,Action在调用之后仍然需要返回一个视图……那么发生了什么?

解决方法

如果要使用FormsAuthentication系统,则需要切换到此行(隐式使用returnUrl参数).
return Redirect(FormsAuthentication.GetRedirectUrl(model.UserName,true));

您将获得FormsAuthentication.RedirectFromLoginPage将使用的URL,但您将使用RedirectResult明确地从操作方法中保释.

注意

如果你走这条路线,你会想要在表单auth web.config行中放置一个defaultUrl参数,以防有人直接进入你的登录页面(或者他们传入一个不通过FormsAuthentication安全限制的redirectUrl).如果不覆盖默认值,错误的URL将被重定向到?/ default.aspx.在大多数MVC应用程序中,这可能是404.

<forms loginUrl="~/Account/LogOn" defaultUrl="~/" timeout="2880">

替代

如果您启动一个新的MVC 3示例“Internet应用程序”,您将找到一个LogOn操作方法,该方法处理类似于FormsAuthentication.RedirectFromLoginPage内部执行的returnUrl.

if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
    && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/")) {
    return Redirect(returnUrl);
}
else {
    return RedirectToAction("Index","Home");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读