2010-11-18 4 views
2

ProtectedData CurrentUserで暗号化を使用し、Forms auth(カスタムメンバシップモジュールを使用して、違いが生じるとは思わない)を使用するサイトがある場合、動作しますいくつかの異なるWebサーバー間で?Cryptography.ProtectedData ASP.NETとフォーム認証を使用するCurrentUser

私が推測するのは、現在使用されているユーザーがUser.Identityであるため、ログインしたユーザーになり、どのWebサーバーでも同じになるからです。

ドキュメントは、ASP.NETで動作しているとは言いませんでした。

答えて

1

「現在のユーザー」は、asp.netアプリケーションが(サイトにアクセスしているユーザーではなく)実行されているユーザーになります。通常、これは/ ASPNETユーザーアカウントですが、変更することができます。これはWindowsIdentity.GetCurrent()機能で確認できます。

もう1つの方法は、DataProtectionScope.LocalMachineを代わりにマシンストアに保存することです(マシン上の任意のアカウントからのアクセスが可能)。特権を持たないアカウント(ASPNETユーザーなど)を使用している場合は、誰もがそのユーザーとして実行され、そのユーザーストアにアクセスするためのアプリケーションを作成する可能性があるため、

+0

ドメインアカウントとして実行されている場合を除き、unprotectは1台のマシンでのみ動作します。 –

+0

はい。 asp.netアプリケーションは、protect/unprotect機能を使用して、複数のユーザーのデータを保存することができます。たとえば、次の文字列を渡して "userid:392013 value:これは秘密です"を保護することができます。 Protectは暗号化された文字列を返します。その文字列をデータベースに格納すると、その文字列が暗号化されたマシンからのみ解読できるようになります。ウィンドウが関わる限り、それらはすべて同じWindowsユーザー(ASPNETアカウント)であるため、同じストアに格納されます。 –

関連する問題