なりすましが機能するには、なぜユーザーがログインしている必要があるのですか?

なりすましが機能するには、なぜユーザーがログインしている必要があるのですか?

私の Windows Server 2008 サーバーは、偽装を使用する ASP.net アプリケーションをホストしています。偽装されているユーザーがサーバーにログオンしている限り、アプリケーションは動作します。ただし、ユーザーがログオフすると、クライアントは Web ページを表示できなくなります。代わりに、不可解なエラーが表示されます。

偽装ユーザーがログオンしたままにせずにサーバーを動作するように構成するにはどうすればよいですか? よろしくお願いします。

答え1

問題と解決策を見つけました。

問題:

Web サービスは、X509Certificate2 証明書を使用します。X509Certificate2 クラスのコンストラクターは、アプリケーションが実行されるユーザー アカウントのユーザー プロファイルに証明書をインポートしようとします。多くの場合、ASP.NET および COM+ アプリケーションはクライアントを偽装します。偽装する場合、パフォーマンス上の理由から、偽装したユーザーのユーザー プロファイルはロードされません。そのため、偽装したユーザーの "User" 証明書ストアにアクセスできません。

プロファイルはユーザーがログオンしたとき、またはサービスが開始されたときに読み込まれるため、対話型アプリケーションまたはユーザー アカウントで実行されている Windows サービスから実行した場合も同じコードが機能します。

解決:

  1. ASP.NET/COM+ アプリケーションが実行されるマシンの管理者は、"ローカル コンピューター" ストアと呼ばれるマシン証明書ストアに証明書をインストールする必要があります。これは、ASP.NET/COM+ アプリケーションのインストール時に実行する必要があります。

  2. 管理者は、証明書に関連付けられた秘密キーのアクセス許可を設定して、ASP.NET プロセスと偽装ユーザーにキーへのアクセスを許可する必要があります。これは、証明書または秘密キーを「ローカル コンピューター」ストアにインストールしたユーザー アカウントのみが、後で証明書に関連付けられた RSA 秘密キーを使用できるため必要です。Windows リソース キット ツール (http://msdn2.microsoft.com/en-us/library/aa384088.aspxhttp://msdn2.microsoft.com/en-us/library/aa384088.aspx) ) をクリックして権限を設定します。

  3. ASP.NET/COM+ アプリケーション コードでは、PFX ファイルから証明書をインストールしようとするのではなく、インストールされた証明書を使用する必要があります。コードで X509Store クラスを使用してインストールされた証明書を検索します。

見るhttp://support.microsoft.com/kb/948154詳細については。

関連情報