0

Membership.GetUser().ProviderUserKeyそのため、呼び出しごとに再取得せずに、現在ログインしているユーザーの UserID を取得するために再利用しようとしています。

私がこれまでに読んだことはすべてプロファイル値を使用すると言っていますが、プロファイルがSQLサーバーに保存されている場合SQLProfileProvider、dbラウンドトリップよりも利点がありますか?

MVC で一度フェッチされるオブジェクトを宣言する方法はありますか (HTTP ポストごとに、これを複数のポストバックで再利用できないことに気付きました)。

  • セッションは SQL プロバイダーを使用しています
  • プロファイルは SQL プロバイダーを使用しています
  • メンバーシップは SQL プロバイダーを使用しています

アプリケーションは Web ファームで実行されているため、SQL サーバーを利用する必要がありますが、必要なたびにユーザー ID を取得するために 100 回往復するのではなく、要求ごとにマシンごとにキャッシュしたいと考えています。

4

1 に答える 1

3

User.Identity.Nameあなたが探しているものです。フォーム認証を使用している場合、これは、認証されたクライアントが各要求で自動的に送信する認証 Cookie から取得されます。現在認証されているユーザー名を提供します。メンバーシップ (別名 DB) アクセスなし。

ユーザーに関する追加情報を保存したい場合は、フォーム認証チケットのセクションとカスタム Authorize 属性を使用して、Cookie から各要求でuser dataカスタムを取得できます。IPrincipal

于 2012-07-10T21:13:36.663 に答える