【问题标题】:How can I protect ASP.NET sites behind a Windows password and forms authentication?如何在 Windows 密码和表单身份验证后面保护 ASP.NET 站点?
【发布时间】:2009-11-13 15:41:17
【问题描述】:

我正在开发一个 ASP.NET MVC 站点,该站点将表单身份验证用于部分应用程序。在开发过程中,我需要能够让外部各方访问托管该站点的开发服务器。由于我不想将站点暴露给整个互联网,因此我需要对其进行密码保护,同时仍允许使用表单身份验证。

混合使用 Windows 和表单身份验证不起作用。有这样做的标准方法吗?我不得不认为这是一种常见的情况。 MSDN上的文章似乎不适用于我的情况:http://msdn.microsoft.com/en-us/library/ms972958.aspx

更新:前两个答案建议添加标准 IIS 基本/摘要身份验证。据我所知,这与表单身份验证不兼容,因为用户的身份将设置为 Windows 帐户,而不是通过表单身份验证使用的身份。我需要两者完全独立。有什么想法吗?

【问题讨论】:

    标签: iis authentication iis-7


    【解决方案1】:

    您可以在 IIS 中保护它,将这些详细信息提供给外部各方,然后保持表单身份验证不变。

    【讨论】:

      【解决方案2】:

      禁用匿名访问以强制用户在访问站点之前通过 Windows 帐户登录。

      【讨论】:

      • 这样做的问题是他们无法访问网站的受表单保护的部分,因为他们的用户已经被设置为 Windows 帐户,这与他们的网站帐户无关。跨度>
      • 并非如此——禁用匿名访问会强制一个人进行 Windows 登录以访问这些页面。然后表单的东西可以在它后面工作。这里的关键是禁用匿名访问,同时不添加其他形式的身份验证。
      • 也许我错过了什么。仅在 IIS 7 中启用表单身份验证,当我访问该站点时,我被重定向到表单身份验证登录 url,这反过来又显示了一个标准的 IIS 401 未经授权的错误。我想要的是一个 Windows 提示,而不是其他任何东西。
      • 啊,从来没有提到 IIS7,我错过了标签。从这个角度来看,也许您可​​以调整配置以要求所有经过身份验证的用户,甚至是网站的“公共”部分。否则在 IIS7 中没有真正的好方法。
      • 另一个想法——我认为您可以禁止匿名用户读取文件夹并强制执行 http 身份验证提示,即使在 IIS7 上也是如此。不过没试过。
      【解决方案3】:

      我认识一个使用 Apache 和反向代理的人。

      http://www.apachetutor.org/admin/reverseproxies

      【讨论】:

      • 我实际上喜欢反向代理的想法,但我不想将 Apache 添加到混合中。我将看看 ARR for IIS 是否能够做到这一点。
      【解决方案4】:

      不幸的是,您尝试做的事情在 IIS7(集成模式)中是不可能的,但有一种解决方法。我建议你到read this article,作者是 Mike Volodarsky,他是微软 IIS7 的前项目经理。文章解决了您的问题,甚至还有您可以使用的示例代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多