2011-08-04 7 views
0

ユーザがログインすると、実際の名前や連絡先などActiveDirectoryから取得する必要のある属性の数があります。これらのフィールドのいくつかは、いくつかのフォームでかなり頻繁に表示されます。私の場合、ActiveDirectoryの検索速度はかなり悪いので、ログインするとこの情報をメモリに保存し、一度ログオフ/タイムアウトすればこの情報を削除するのが最善の方法だろうと思っていましたか?一時的なユーザー情報をasp.netに保存する最善の方法は何ですか?

今までの私の考え: 1)セッション中にストアしても安全ですか? 2)User.Identityを拡張してそこに格納します。それが可能であるかどうかはわかりません。 3)何らかのグローバルディクショナリに保存してください。キーと値のペアを削除するためにログオフしたことをどのように知ることができますか?

私はこのプロジェクトでMVC2を使用しており、ActiveDirectoryに書き戻す必要はありません。

答えて

1

はい、プロファイルプロバイダを使用してデータを保存できます。 私は個人的にセッションデータを使用します。

私の見解理由:(ここでadditionalUserData =データなど)

1、プロファイルにフィールドを追加することによるデータベース・ソリューション を使用することを簡単にし、セッション処理として実装する時間はかかりません。

2、セッションデータは常にサーバー上にあり、データベースのデータを気にする必要はありません。 (わずかなプロジェクトがこの方法で行われています) これは合理的に保存してアクセスしやすく、有効期限の日付を追加することができます。また、ユーザーに関する詳細情報を保持することもできます。

第3回オプション: あなたは、タイムスタンプと有効期限が切れ、あなたはすべてのユーザーのための辞書を持っている必要があります。その場合には、このレコードを削除したすべての要求をチェックしていなければならないだろう...

問題はあなた次第です。.. ..

希望すると助かります

1

大量のデータでない限り、セッションに入れます。それはセッション状態にぴったりのようです。 httpsを使用する場合、安全上の問題はありません。

セッション状態にするデータの量が気になる場合は、ASP.NET Profile Providerの使用を検討することもできますが、データをADと同期させておくためのメカニズムを用意する必要がありますユーザーがログインする時間)。それは言われている、それはデータの巨大な量ではないと私はセッションが行く方法だと思う。

2

セッションオブジェクトは、情報を格納するためによく使用されます。セキュリティが不安な場合は、HTTPSを使用して通信するか、またはその情報を格納するためにState ServerまたはSQL Serverを使用できます。

関連する問題