6

aとbの2つのWebサイトを持つWebサーバーがあります。
a は生産です。

b はテスト/ステージングです。

私より前にこれらのアプリを作成した人は誰でも、

Request.ServerVariables("LOGON_USER") 

これは、ユーザーが Windows 認証を介してサーバーに対して認証するときに割り当てられます。aでは、これはうまく機能しますが、bでは奇妙な点があります:

ログイン プロンプトが表示されますが、[ドメイン]\myusername を使用してログインすることはできません。\\myusername でも、同じパスワード (AD ベース) でログインできます。私の知る限り、IIS の構成は同じです。唯一の不一致は、a.domain.com から b.domain.com を指す DNS CNAME です。その DNS レコードを IP を指すように変更すると問題は解決しましたが、何が起こっていたのかを理解しようとしています。

以前の DNS レコード:b.domain.com > a.domain.com

ワーキング DNS レコード:b.domain.com > 10.0.x.131

b > a > 通常の Windows 認証のはずだったのですが、何らかの理由で \\ を使用していることに気付きました。ドメイン名を 2 回追加しているのでしょうか。そして、認証に関して \\ とは正確には何ですか?

わかる?

4

1 に答える 1

1

いくつかの考え。

  • サーバーが実行されている OS の特定のバージョンはどれですか? 特に Microsoft は、バージョンごとに動作が多少異なる傾向があり、ドキュメントはバージョン固有です。

  • 何が正しいかを確認する方法がないため、「何が起こっているのか」という質問に答えるのは困難です。私は仮説を立てることができます (そしてそうするつもりです)。質問を「何が起こっているのか」ではなく「どうすれば修正できるのか」という言葉で表現できれば、私が正しいかどうかを確認して、おそらく少し理解できたと思います。途中でより適切なデータ。

  • これは、プログラミングの理解というよりも、システム管理の深い理解に重点を置いているように思えます。ここで必要なものが得られない場合は、serverfault で質問したほうがよいかもしれません。

そうは言っても、他の情報がない場合、「\」はおそらく2つのいずれかの結果です。

それぞれに '\' を追加するコードの 2 つの異なる部分がある可能性があります。多くの場合、ドメイン名は末尾の「\」があってもなくても有効です。したがって、ドメイン名とログイン ID を確実に分離するために、Windows 認証がドメイン名の直後とログイン ID の前に 1 を追加する可能性は十分にあります。同様の理由で DNS CNAME ルックアップがドメイン名の末尾に 1 つを自動的に追加する場合、2 つがスタックする可能性があります。

DNS プロセスのどこかで、ドメインがコンバーターを通過して制御文字をエスケープ文字に変更した可能性があります (特定のセキュリティの悪用を回避する方法として)。「\」はそのようなエスケープ文字の基礎として使用されるため、独自のエスケープ文字 (「\」) が必要です。

于 2013-03-20T14:00:30.567 に答える