gpt4 book ai didi

asp.net - ASP.NET MVC问题与表单例份验证部分的配置

转载 作者:行者123 更新时间:2023-12-03 11:55:13 26 4
gpt4 key购买 nike

我有一个在IIS上运行的ASP.NET MVC 3 Beta应用程序。在我的web.config中,我定义了以下部分,负责表单例份验证:

<authentication mode="Forms">
<forms
loginUrl="~/Account/LogOn"
name=".VNK"
protection="All"
timeout="43200"
cookieless="UseCookies" />
</authentication>

定义的登录地址是 ~/Account/LogOn

当我尝试使用以下方法获取登录网址时:
FormsAuthentication.Initialize();
string loginUrl = FormsAuthentication.LoginUrl;

我收到: /VNK/site/Account/Login
为什么我得到的地址不同于 web.config中定义的地址?

UPDATE :“/ VNK / site /”前缀是 ,不是此处的问题。问题在于 LoginUrl类的 FormsAuthentication属性不能反射(reflect)来自web.config的值。这意味着如果我将web.config中 loginUrl属性的值从“〜/ Account / LogOn”更改为例如“〜/ foobar”, FormsAuthentication.LoginUrl的值仍为“/ VNK / site / Account / Login”。为什么呢

最佳答案

我认为ASP.NET MVC 3 Beta中存在错误。在ASP.NET MVC的早期版本中不会出现此问题。

如果有人想重播此错误,则应遵循以下步骤:

1 。下载mvc framevork

2 。创建新的 ASP.NET MVC 3 Web应用程序

3 。在Authorize中的About操作上应用HomeController属性

[Authorize]
public ActionResult About()
{
return View();
}

4 。启动应用程序,并通过单击 关于选项卡来调用 关于的操作。您将收到服务器错误,因为应用程序试图将您重定向到以下URL:

http://localhost:[port_num]/Account/Login?ReturnUrl=%2fHome%2fAbout

显然没有 登录 View 。有 登录 View 。未登录的web.config中定义了登录操作的网址:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

但是申请并没有反射(reflect)出这一点。有谁知道发生了什么事吗?

更新:

没错, MVC 3 Beta 中存在错误。从 known issues:

“存在一个已知问题,导致表单例份验证始终将未经身份验证的用户重定向到/ Account / Login,而忽略了Web.config中使用的表单例份验证设置。解决方法是添加以下应用程序设置。”
<add key="autoFormsAuthentication" value="false" />

更新2:

Alexander Prokofyev注意到, ASP.NET 3 RTM 寻找其他设置。因此,您需要此行:
<add key="loginUrl" value="~/LogOn" />

关于asp.net - ASP.NET MVC问题与表单例份验证部分的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com