2

ASP.net 認証で動作する asp.net mvc サイトを取得しました。各ユーザーに関する追加情報も格納する UserInformation テーブルがあります。ほぼすべてのページで、現在のユーザーの UserInformation レコードを少なくとも 1 回プルするためにデータベースを呼び出しています。

私は、同じ情報に対するこれらすべての繰り返しのデータ呼び出しはやり過ぎだと考えています。とにかく私はこれらを減らすことができますか?キャッシング?将来の使用などのためにユーザー情報レコードを保存しますか?

この問題に遭遇したのは私が初めてではないので、車輪の再発明はしたくありませんでした。

前もって感謝します

4

1 に答える 1

2

カスタムの IIdentity と IPrincipal を使用できます。これを実現する方法を説明した素晴らしい記事があります (興味深い部分はbtnAuthenticate_Click、ASP.NE MVC アプリケーションで認証コントローラー アクションとなるメソッドで発生しています。ここでは、カスタム データを使用して認証チケットが発行されます)。この例では、認証チケットを手動で作成し、userDataプロパティを使用して追加情報を保存するという考え方です。データは Cookie に保存されるため、大量のデータがある場合、これは適切ではない可能性があります。ただし、を使用する代わりに、userDataセッションやキャッシュなどの別の場所に保存できます。カスタム[Authorize]属性を記述して、カスタム プリンシパル (に対応する部分) を処理することもできます。Application_AuthenticateRequestこの記事のメソッドは、ユーザーを元に再構築するために、このカスタム認証フィルターに入れる必要があります)。

于 2010-11-09T07:47:25.710 に答える