1

そのため、私は既存のデータベースからデータをプルするMVCアプリに取り組んできました。これを「イントラネットアプリケーション」として設計し、ユーザーがWindowsクレデンシャルを使用してアプリに自動的にログオンできるようにしました。プロパティ@User.Identity.NameはWindowsのログイン名を返すため、これは機能します。(および他のユーザー)、およびアプリケーション自体にアクセスできます。ただし、情報が存在するデータベースにアクセスしようとすると、次のエラーが発生します。

[SqlException(0x80131904):ユーザー'**私のコンピューター名**'のログインに失敗しました。]

Windowsのログインを認識しているように見えますが、何らかの理由で、代わりに私のマシン名を使用してデータベースにアクセスしようとしています。会社では、この特定のデータベースにも従業員のWindowsユーザー名を使用してアクセスするため、MVCアプリに組み込まれているWindows認証を使用して自動的にデータベースにアクセスできるようにしたいと思います。

私のweb.configでは、IDの偽装をfalseに設定し、認証モードをWindowsと同じにし、appSettingsの次のキーを使用しています。

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false" />

接続文字列は自動生成され、Visual Studioからアプリを実行すると情報を取得できるため、IIS設定の問題であるとしか考えられません。(これまでMVCアプリをデプロイしたことはありません)

アプリケーションのIIS設定で、Windows認証を除くすべての認証を無効にしました。私が間違っていることについて何か考えはありますか?必要な追加情報があれば教えてください。

4

1 に答える 1

2

認証構成で偽装をオンにします。それ以外の場合は、アプリケーション プールの ID を使用して SQL Server に接続します。

于 2012-08-07T20:24:10.913 に答える