【发布时间】:2014-04-16 10:33:45
【问题描述】:
我有一个 asp.net C# MVC 网站。它使用 SimpleAuthentication 和表单身份验证。一切正常,需要人们登录才能访问页面。但是,我有一个名为“ReportsController”的控制器。每当您转到此控制器中操作的 URL 时,它总是会在浏览器窗口中弹出“需要身份验证”。
它只针对这个控制器而不是其他任何控制器。 URL 将是“www.domain.com/reports”。当我从 IIS 和我的开发服务器运行时,这个 URL 可以正常工作,但不能在我的实时服务器上运行。这是运行 IIS7。
我检查了我的 web.config,它肯定设置为 Forms 身份验证而不是 Windows。
任何人都知道为什么以“/Reports”开头的任何网址都不起作用。我猜这是特定于服务器的东西,例如 IIS 设置或 web.config 更改,但我不知道这是什么。
namespace ProjectName.Controllers
{
public class ReportsController : Controller
{
public ActionResult Index()
{
throw new SystemException("here");
return View();
}
}
}
Web.config:
<authentication mode="Forms">
<forms loginUrl="~/" timeout="2880" />
</authentication>
【问题讨论】:
-
您的报表控制器是否在控制器上具有任何自定义属性或可能应用过滤器以实现安全性的操作?
-
我在动作中使用了 [Authorize],但我暂时尝试将其注释掉,但没有得到任何乐趣。
-
我已将代码添加到问题中,以便您查看。控制器或动作没有什么特别之处。
-
不确定 Reports 是否可以成为 IIS 的保留字?您是否尝试使用任何前缀或后缀更改报告控制器的名称,例如 MainReports 或 ReportsOut?
-
我也有这个想法,但它在我的机器和开发服务器上运行良好。所有其他控制器工作正常。
标签: c# model-view-controller iis-7 routing