6

index.cshtml ページに自動的にログインするマシンにログオンしている現在のドメイン ユーザーを取得するには、MVC4 アプリが必要です。

アプリケーションの残りの部分は、保護する必要があるアクションの Authorize 属性を使用することで、意図したとおりに機能します。

アプリに「現在のマシンにログインしているユーザーを取得し、何も保護せず、ユーザーをランディングページに移動する」と言うだけです。

web.config:

<authentication mode="Windows" />

このように、ユーザーはランディング ページで空白になります。

インデックス アクションに [Authorize] だけを配置しようとすると、資格情報が要求され、ランディング ページで何も保護せずに、必要に応じて続行されます。

これを回避する方法はありますか?

アップデート:

何をしても、ログイン プロンプトをバイパスして、アプリケーションが現在のドメイン ユーザーを自動的に取得し、アプリにログインさせる方法はないようです。

4

4 に答える 4

3

MSDNからこれを確認してください

impersonate="true"一緒に追加

  <identity impersonate="true"/>
  <authentication mode="Windows" />

次に使用します

 ((HttpContext)context).User.Identity as WindowsIdentity
于 2013-10-08T09:09:57.433 に答える
1

私はこの問題との戦いを終えました。これは、win 2k8r2 で実行されている iis 7 によるものであることを前置きしておく必要があります。私にとっての修正は、iisの認証メニューに移動することでした-> Windows認証を選択します->右側のペインでプロバイダーをクリックします->使用可能なプロバイダーのリストにntlmのみが含まれるように調整します。ネゴシエートがログイン プロンプトを強制する原因のようです。

于 2014-05-21T01:14:54.823 に答える