3

この接続文字列を使用して、WCFサービスをWindows認証に移動しようとしました

<add name="MembershipConnection" connectionString="Data Source=DBADDRESS ;Initial Catalog=aspNetMembership;Persist Security Info=True;Integrated Security=SSPI;"/>

WCFサービスはIIS(2003)でホストされており、SQLでアクセス許可が設定されているこのアプリ用に設定したユーザーとして、[ディレクトリセキュリティ]で設定したユーザーです。このアプリのアプリケーションプール設定は「ネットワークサービス」ユーザーで実行されていますが、サービスを使用しようとするとこの例外が発生します。

System.Data.SqlClient.SqlException:ユーザー'Domain \MachineName$'のログインに失敗しました

私はシステム管理者と話をしましたが、ユーザー名の末尾の$は、ユーザーではなく認証しようとした場合のマシン自体を意味すると彼は言います。

マシンがIISでのユーザー設定ではなく、認証を試みている理由について何か考えはありますか?

4

2 に答える 2

5

実際、宣伝どおりに機能しています。「Network Service」ユーザーは、リモート接続のマシンとして認証されます。ここのmsdnドキュメントから:

NetworkService アカウントのコンテキストで実行されるサービスは、コンピューターの資格情報をリモート サーバーに提示します。

特定のアカウントが必要な場合は、アカウントを作成し、そのアカウントで実行されるようにアプリ プールをセットアップする必要があります。

ユーザーとして認証する場合は、委任を設定する必要があります。

于 2009-08-28T20:31:29.530 に答える
1

呼び出し元を偽装するようにサービスを構成する必要があります (簡単な部分、たとえば を使用[OperationBehavior(Impersonation = ImpersonationOption.Required)])。次に、制約付き委任用に IIS をセットアップする必要があります。見る

于 2009-08-28T20:30:56.710 に答える