2011-08-01 13 views
1

私はログインするためにアクティブなディレクトリに接続しようとするAsp.Netアプリケーションを開発しています。Asp.Netアプリケーションで奇妙なFirefoxの動作

薄暗いユーザーをSystem.Security.Principal.IPrincipal

とおり:私は私がこれを行うには、「ベストプラクティス」を使用していないので、私は「Default.vb」内の自分のソースコードを添付して知っています文字列として暗いユーザ名

ユーザー= System.Web.HttpContext.Current.User

ユーザ名= User.Identity.Name

その後User.Identity.IsAuthenticatedもし
'OK

が何かない'

場合、私はChromeとInternet Explorerを使用する場合someothers

終了を行うには、すべてokです:自動的にユーザーは "ログイン" として署名されます。しかし、私がFirefoxを開くと、ユーザー名とパスワードに "内部"の入力ボックスが表示されます。説明する方法がわかりません。Firefoxはユーザーとパスワードを要求します。例:私はユーザー:MYCOMPANYDOMAIN \ stighyを入力します)、次に入力します。

だから何か間違っていますか?

+0

こんにちは@stighy申し訳ありませんがわかりません。 firefoxにユーザ名/パスワードを入力する必要がないように(自動的にログインするように)しようとしていますか?それとも、正しいユーザー名/パスワードを入力しても、Firefoxがログインしていないのでしょうか? –

+0

こんにちはアレックス。はい、プログラムは次のように動作します。ユーザーがWindowsに(ドメインに)ログインしている場合、asp.netアプリケーションは自動的にユーザーを認識し、アプリケーションにログオンします。しかしFirefox(私が試したすべてのFirefoxのインストール)は、ユーザーとパスワードを尋ねる..! – stighy

答えて

0

これはFirefoxでのNTLMの実装のためです。

統合認証を使用してサイトに接続すると、サーバーは最初に、どの認証方法がサポートされているかを識別する401とauthenticateヘッダーで応答します。あなたのブラウザは、これにさまざまな形で反応することができます。統合認証では、実際にはわずかに異なる方法で同じことをする2つのメソッドがあります。

IEはKerberosを使用しています。なぜなら、それはMicrosoftだからです。これは1回の往復だけを使用する方法です。あなたのブラウザは、トークンを使って上記のチャレンジに応答します。このトークンは、サーバーがあなたを理解してあなたを受け入れるために必要なすべてのものです。

Firefoxでは、以前の、よりよく文書化されたNTLMを使用しています。 Firefoxは、サーバーが応答するチャレンジをサーバーに要求します。 Firefoxはこの呼び出しをasnswerするためにあなたのユーザ名&パスワードを必要とし、これを得る唯一の方法はユーザに尋ねることです。

次に、ユーザー名&のパスワードに基づいて暗号化された値を使用してチャレンジに応答します。これがサーバーが期待していたチャレンジと一致する場合、認証されます。

ChromeはIEと同様の方法を使用しているので、確認する必要はありません。一番下の行はあなたが何も間違っていないということです。&それはちょうどそれが動作する方法です。あなたがもっと知りたいのであれば、チャレンジ/レスポンスのパスワードを読むことをお勧めします。

Simon

1

デフォルトでは、firefoxは自動的にNTLMの資格情報を送信しません。

ただし、ブラウザの設定でこれを無効にすることは可能です。

ほとんどの場合、人々の設定を変更することは現実的ではありません。

イントラネットベースのアプリケーションを開発している場合は、必要なクライアントマシンを変更することができます。グループポリシーを使用して設定をまとめて変更できると聞いています。ここで

は、ページが維持されていないことが表示されますので、私はそれを保証することはできませんあなたがhttp://support.mozilla.com/en-US/kb/Firefox%20asks%20for%20user%20name%20and%20password%20on%20internal%20sites

を始めるためのものです。

しかし、私は自分の前にこれらの設定を変更しました(申し訳ありませんが、私が使用したチュートリアルを見つけることができません)。