【问题标题】:ASP.NET MVC Urls and IIS Integrated Windows AuthenticationASP.NET MVC Urls 和 IIS 集成 Windows 身份验证
【发布时间】:2010-11-03 16:05:17
【问题描述】:

我有一个完全支持表单身份验证的 ASP.NET MVC 应用程序。但是,有一组路由 (/report/%) 我需要强制启用集成 Windows 身份验证,因为这些页面需要模拟当前用户(出于安全原因)。

如果我将整个站点设置为集成 Windows 身份验证,这一切正常,除了 Firefox 在用户访问网站主页时提示用户输入用户名/密码两次(一次用于 Windows 身份验证,然后再次用于表单身份验证),而 IE仅提示表单身份验证。这很好,我知道这是 Firefox 的默认行为,但是为了不惹恼用户,我被要求将 Windows 身份验证要求限制在站点的 /report/* 部分,因此只有在他们会转到 /report/% 中的任何页面。

在 ASP.NET WebForms 中,这很容易,因为有一个 physcial /report 文件夹可以放置身份验证配置,但在 MVC 中,这个 URL 是虚拟的,所以我不能这样做。有谁知道这样做的好方法?我尝试创建一个“网关”aspx 页面,用户需要先通过该页面才能重定向到相应的报告页面,尽管 Firefox 确实在正确的位置提示用户输入他们的 Windows 凭据,但它似乎并没有保留将后续请求的这些详细信息发送到任何 /report/% 页面。有任何想法吗?将非常感激!

【问题讨论】:

    标签: asp.net asp.net-mvc iis windows-authentication


    【解决方案1】:

    就在最近我不得不做类似的事情。我的大部分 asp.net MVC 应用程序都需要表单身份验证,其中一部分需要 Windows 身份验证。

    我最终将我的网络应用拆分为两个项目。

    第一个项目托管在 IIS 下的网站根目录中。这正在运行表单身份验证。

    第二个项目作为同一网站的虚拟目录托管。这正在运行 Windows 身份验证。

    唯一的权衡是您最终可能会得到 /reports/reports/% 的 URL(或任何您命名的虚拟目录)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多