0

ポータルで作業していて、ユーザーがドメインに参加しているかどうかを検出したいと思います。これを行う最善の方法は、DNSの逆引き参照を実行して、リモートホストを確認し、ユーザーがドメインに参加しているかどうかを確認してから、AD資格情報を使用してログインすることです。

ユーザーがドメインにいる場合は、ユーザーがログインするようにします。

最初にIP範囲チェックを実行し、次にDNS逆引き参照を実行します...

別のシステムでは、ASPページでこのコードを使用します

Dim oIIS
Dim vEnableRevDNS
Dim vDisableRevDNS

vEnableRevDNS = 1
vDisableRevDNS = 0

Set oIIS = GetObject("IIS://localhost/w3svc/1/ROOT")
oIIS.Put "EnableReverseDNS", vEnableRevDNS
oIIS.SetInfo
Set oIIS = Nothing

MVC 2:C#でこれを行う方法はありますか?

明確にするために:私はまだWindows統合認証を使用します-しかし、プロセスをシームレスにしたいです...あなたが私たちのネットワークである場合は自動的にログインします...そうでない場合はログインページに転送されます

イントラネット/エクストラネットとパブリックユーザーアクセスがあり、それぞれに異なるログインプロセスがあります。エントリポイントに転送するメカニズムとして、純粋に逆引きDNSを使用したいと思います。

ポインタをありがとう。

4

1 に答える 1

2

逆引き DNS は強力な認証メカニズムではありません。

統合 Windows 認証は、IIS/ASP.NET オプションです。オンにすると、ブラウザと IIS が残りを処理します。ユーザーは認証されたアプリケーションに到着します。(匿名アクセスがオフになっていることを確認してください)

編集: DNS は認証メカニズムではありません。技術仕様を書いた人は誰でも、Windows 統合認証 (NTLM/Kerberos) が実際にどのように機能するかを調べてください。

言うまでもありませんが、マシンに割り当てられた DNS エントリには依存しません。

編集2:

Windows 統合認証をシームレスにするには、クライアント コンピューターに次の 3 つが必要です。

  • NTLM/Kerberos-Auth をサポートするブラウザー (Internet Explorer、および正しい設定: Firefox) を使用する
  • その Active Directory ドメインのメンバーであるマシンを使用する (これは、他の信頼された AD ドメインでも機能する可能性があります)
  • AD ドメイン アカウントにログインしました。

これにより、自動サインインが可能になります。プロンプトはありません。ただそこにいます。

ただし、これらを満たしていない場合は、Internet Explorer と Firefox で標準のパスワード プロンプトが表示されます (アプリケーションではなく、標準のブラウザーのプロンプトのみ)。これはアプリケーション コンテキストの外部で処理されるため、分かりやすいエラー メッセージを表示するオプションはありません。

ユーザーが NTLM/Kerberos をサポートしていないブラウザを使用している場合、エンドレスな認証プロンプトが表示されるか、ブラウザに「アクセスが拒否されました」ページが表示されるだけです。

于 2011-01-19T12:59:22.177 に答える