基本認証で保護された仮想ディレクトリがあります。特定の IP の認証を無効にして、たとえば 127.0.0.1 からのすべてのリクエストが資格情報を求めずに許可されるようにしたいと思います。どうすればいいですか?
答え1
これを実現するための組み込みの方法を見つけることができませんでした。結局、IISモジュールを使用してMicrosoftの指示。
モジュールはクライアントの IP アドレスをチェックし ( を使用HttpRequest.UserHostAddress
)、それが除外リストにない場合は、Windows アカウントの標準基本認証を再実装します ( LogonUser
API を使用し、HttpContext.User
に設定しますWindowsPrincipal
)。認証ドメインと除外 IP アドレスのリストは、 から読み取られますweb.config
( を使用ConfigurationManager.AppSettings
)。
障害には次のようなものがありました:
- サーバー自体を除外したかったので、
127.0.0.1
サーバーの IP アドレスを除外リストに追加しましたが、::1
(IPv6 localhost) も追加する必要がありました。 - 私は hgweb へのアクセスを保護するためにこれを使用していますが、何らかの理由で、プラグインを有効にした後、
hgrc
のallow_push
行のエントリを から にusername
変更する必要がありました。DOMAIN\username