asp.net-mvc-3 - 站点重定向到服务器上的错误登录页面,但在本地工作正常

标签 asp.net-mvc-3 forms-authentication iis-7.5 iis-express

所以,我正在开发一个 MVC3 网站。我正在本地开发,然后构建服务器在 checkin 时运行,如果构建有效,则将其推送到开发服务器。

我的本​​地机器是 Win7,VS2010 SP1,使用 IIS Express 作为本地 Web 服务器。服务器是Win2k8 Server R2。在我的本地机器上,安装了 MVC3 软件包,在服务器上,我将 MVC3 库与应用程序捆绑在一起,因此我不必将它们安装在机器上。

这就是奇怪的地方。路由默认设置为 HomeController,它标有 [Authorize] 属性,因此未经身份验证的用户首先应该看到的是登录页面。我使用表单例份验证进行了相当简单的设置:

<authentication mode="Forms">
   <forms loginUrl="~/Auth/LogIn" timeout="2880" />
</authentication>

与默认值唯一不同的是它重定向到的 URL。现在,这在 IIS Express 中完全可以正常工作。所以我 promise ,它构建,并插入开发。 IIS 管理器中的配置编辑器确认服务器上的 loginUrl 仍然是 ~/Auth/LogIn。这也直接在 web.config 中得到确认。但是,当我尝试访问该网站时,我被重定向到 /Account/Login?ReturnUrl=%2f。我知道应用程序运行良好,就像我手动转到 /Auth/Login/ 一样,我得到了登录页面,我可以登录并使用该网站。

我以前从未见过这种行为,有其他人遇到过吗?您是如何解决的?

最佳答案

我们在 MVC 3 的 RTM 版本中遇到了同样的问题。Varun 的回答对我来说有点难以理解,但最终找到了解决方案。为了让其他人清楚这一点:

在您的 Web.config 文件中, 部分中可能已经有类似的内容:

<authentication mode="Forms">
  <forms loginUrl="Login/Login" defaultUrl="Home"/>
</authentication>

虽然这在 Windows 7 开发计算机上按预期工作,但由于某种原因,它在 Windows 2008 R2 服务器上不起作用(某些组件的不同版本?我不知道)。为了做到这一点,我必须将此行添加到 部分:

<add key="loginUrl" value="Login/Login" />

关于asp.net-mvc-3 - 站点重定向到服务器上的错误登录页面,但在本地工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848362/

相关文章:

asp.net-mvc-3 - 在模型中包含 SampleData.cs 后尝试运行 MVC Music Store 时出现异常

jakarta-ee - 用户登录Web应用程序时如何实现 "Stay Logged In"

performance - 如何通过 IIS 日志查找服务器处理时间?

asp.net-mvc - 获取具有 # 的返回 URL 查询字符串值

asp.net - 如何在 NLog 中获取 IIS 站点名称

javascript - IIS 7.5 没有图像 css js 显示

asp.net - Windows Azure : How to 301 non-www url to www for a domain

asp.net-mvc-3 - Chrome 和 Firefox 不显示 anchor 标记

asp.net-mvc - 为什么 AntiForgeryToken 隐藏字段与我机器上的 cookie 不同?

java - 如何使用Java登录网站