2009-04-22 16 views
0

私は私のASP.NET MVCアプリケーションでWindows認証を使用していASP.NETでWindows認証を使用して、正しい資格情報を返していないと私は、ドメインのメンバーである私のウェブサーバ上の資格情報を入力するよう求めています[私はドメインの資格情報を持っており、正常に認証できます]しかし、現在ログインしているユーザーに対してデータベースの値をチェックしようとすると、コントローラのアクションが "User.Identity.Name"を呼び出すと、SAMアカウントがローカルマシンから返されます。User.Identity.NameはMVC

ローカルマシンのユーザー名(これは、リターンをUser.Identity.Name):SAMは、ドメインからアカウントLOCALPC \ユーザー名

私は私がauthenti午前何である(期待しています)としてADに対するcating:DOMAIN \ usernameの

私は正確にユーザー名のみを使用してユーザーを確認することができないので、これは私の問題を引き起こします。

は、私が何かをしないのです、私は現在のローカルSAMアカウントは、クライアントマシン上にあるものとは対照的に、ウェブサーバにあると認証しています何を返す方法はありますか?いないすべてのイントラネットアプリケーションクライアントは、ドメインが(ドメイン参加していないですが、ADのアカウントを持つユーザーに属しているマシン)結合されますので、これは重要です

理由があります。

+0

アプリケーションUser.Identityをデバッグしている間は、私が認証していますことを示している(私が想定していますそれはどこかにキャッシュされたWindowsトークンを持っています)、そのユーザーのSAMアカウントを取得するために認証されたユーザーを偽装することは可能ですか? –

+0

ところで、私はこれを達成するためになりすましを使うことができますが、私がした場合、最適ではない(または今の私にとってはオプションでもある)*自分のアカウントを偽装するためにユーザーの資格情報にアクセスする方法が必要です* *ドメイン外にある場合は既に資格情報を入力しているためです。ドメイン合流マシンからサイトにアクセスしている場合は、これは問題ではなく、ドメインにないマシンからの問題に過ぎません。 –

+0

私は自分のアカウントを偽装するように頼んだら自分の資格情報をキャッシュしたくないのですが、私の質問に対する答えは基本的には最初に認証するために使うトークンにアクセスし、それはSAMアカウント(アカウント名)を取得するトークンです。 –

答えて

0

Webブラウザに入力を求め、認証のために「DOMAIN \ユーザー名」だけではなく、「ユーザー名」を入力します。

編集:

これは開発サーバーですか? IISが実行されているアカウントを確認します。 web.configで偽装を設定しましたか?

+0

両方のユーザーが同じパスワードを使用している場合は、そうです。もしそうでなければ、違いはありません。 –

+0

私はいつもDOMAIN \ usernameとして認証しますが、User.Identity.Nameは明らかに 'DOMAIN \ username'をキャッシュせず、名前を再度尋ねられたときには 'LOCALPC \ username'を返します。同じ文字列なので、互いに比較することはできません。 –

+0

私の間違いでしたが、助けてくれてありがとう。 –

2

私の間違いですが、問題は今修正されました。私のコードでエラーとなり、私のマシンがドメインに参加していないということが判明し、問題はUser.Identityの値であると考えています。名。すべての提案のための

おかげで、うまくいけばサイトへの私の次の貢献は少ない愚かなノートになります。ところで

- -

このリンクは、人々がIISでの認証に関連する情報を探しに役立つかもしれない:http://blog.mike-obrien.net/PermaLink,guid,5e975b20-7b05-472f-bd80-04028ab8b6fa.aspx

関連する問題