asp.net-mvc – FormsAuthentication.RedirectFromLoginPage()如何工作?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – FormsAuthentication.RedirectFromLoginPage()如何工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
它不会返回视图.事实上,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");
}
原文链接:https://www.f2er.com/aspnet/247314.html

猜你在找的asp.Net相关文章