AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 793266
Accepted
Tuan Anh Tran
Tuan Anh Tran
Asked: 2016-08-02 19:20:51 +0800 CST2016-08-02 19:20:51 +0800 CST 2016-08-02 19:20:51 +0800 CST

是否可以仅为 1 个特定域绑定设置基本身份验证?

  • 772

我只想为 1 个域绑定启用基本身份验证,并让其余的公共访问。IIS可以做到这一点吗?

iis http-basic-authentication
  • 1 1 个回答
  • 2003 Views

1 个回答

  • Voted
  1. Best Answer
    Peter Hahndorf
    2016-08-03T03:47:52+08:002016-08-03T03:47:52+08:00

    网站的绑定信息用于确定将传入请求路由到哪个网站。(通过 Windows 激活服务和 http.sys)。

    对于每个网站,您可以为整个站点或站点中的特定 URL 启用各种身份验证方法,但不能基于主机名。

    你至少有两个选择:

    选项一是使用两个独立的网站,它们指向同一个物理目录,并在站点根目录中使用同一个 web.config。

    您仍然可以为这两个站点使用不同的身份验证方法。

    这里的缺点是您有两组日志文件,并且对配置的某些更改也必须进行两次。

    选项二涉及URL Rewrite 模块

    假设您有两个主机名绑定到站点normal.serverfault.com和secure.serverfault.com.

    在站点根目录下创建一个虚拟目录secure,但将其指向站点本身的同一物理目录(与根目录相同)。

    对于虚拟目录,禁用anonymousAuthentication 并启用basicAuthentication。

    现在向站点添加一个重写规则:

    <rewrite>
      <rules>
          <rule name="Secure">
              <match url=".*" />
              <conditions>
                  <add input="{SERVER_NAME}" pattern="^secure\.serverfault\.com$" />
              </conditions>
              <action type="Rewrite" url="/secure/{R:0}" />
          </rule>
      </rules>
    </rewrite>
    

    我们正在重写所有使用secure虚拟目录的请求,但前提是主机名是secure.serverfault.com

    现在使用normal.serverfault.com的用户仍然可以在没有身份验证的情况下访问该站点,但是使用时secure.serverfault.com他们必须登录。

    我在此选项中看到的一个问题是,web.config对于重新编写的请求,您站点的根目录中的文件基本上被处理了两次。

    尽管它在物理上只存在一次,但在其中执行请求时,\secure\它曾经被视为虚拟目录的本地目录,而再次被视为父目录。所以你必须确保你没有任何不支持这个的设置。例如<add...节点不能被复制,你必须使用<clear...or<remove...来解决这个问题。或者,您将设置移动到 ApplicationHost.config。

    您应该使用此设置测试您的站点,但因为浏览器永远不知道 URL 已被重写,所以它应该可以正常工作。

    • 2

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve