3

引き継いでいる既存のサイトがあり、現在、現在ログインしているユーザーのIDをセッション変数に保存しています(ログインしている場合-そうでない場合は、空の文字列またはnull または何か)。

クライアントは、誰かがログインした後、無期限にそのコンピューターにログインしたままにすることを望んでいます。

ASP.net セッションの最大アイドル時間は 1 日だと思います。Web サイトは Flash 部分 (フロント エンド全体が Flash) で十分に記述されておらず、Flash がログインを処理し、Flash がリロードされない限り、ユーザーがまだ「ログイン」していると想定します。 .

私の解決策は、クライアント側の Cookie をいくつかの GUID 値とともに保存し、関連するユーザー ID をデータベースに保持することだと思います...期限切れのないセッションのようなものです。そのため、ページが読み込まれると、Cookie を確認し、それを使用してデータベースからユーザー ID を選択し、見つかった場合は、ユーザー 23 がログインしていることを示すセッション値を設定します。

誰かがこの観点で何か問題を見ていますか? 何か違うものをお勧めしますか?私は本当に既存のコードの束をリファクタリングしたくありませんが、これを上に滑り込ませてください...

PS -- セキュリティは特に問題ではありません。彼らが人々にログインしてもらう唯一の理由は、私たちが人ごとに注文を追跡できるようにするためですが、このウェブサイトを通じて金銭の変更はありません. また、ユーザーが表示または編集できる個人情報もありません。

4

5 に答える 5

1

これが私のやり方です。私は実際に彼らのログインとパスワードを保持する Cookie を持っています。このようにして、彼らがログインしていない場合に自動的にログインすることができます。欠点は、実際にパスワードを入力しなければならないのは長期休暇から戻ったときだけであるため、誰もがパスワードを忘れてしまうことです。

これは、あなたが持っているのと同じ顧客の要求を持つ内部アプリケーション用であり、これは機能し、顧客を満足させます.

私たちが最終的に行うことの1つは、Windows認証を使用することであり、実際にはこの状況でよりうまく機能する可能性があります.

于 2008-12-06T22:25:33.360 に答える
0

それが私のやり方ですが、それに関する問題(少なくとも私はそれが問題だと思います)は、ユーザー名とパスワードをCookieに保存するときに、Cookieを追加するときに暗号化が行われないことです。ブラウザでCookieを見ると、ユーザー名とパスワードが日としてわかりやすく表示されています。保存したCookieに何らかの暗号化を適用することは可能ですか?または、これをどのように処理しますか?

于 2009-02-17T18:31:43.170 に答える
0

http://timmaxey.net/archive/2009/03/06/asp.net-cookie-auto-log-in.aspxを投稿しているこのブログをチェックしてください、私の場合、トークンは常に変化します。シリーズは、GUIDとIDの組み合わせなど、何かに基づいて生成されるものであり、GUIDは常にユーザーとともに保存されます。この情報などを保存するための Cookie テーブルがあります...かなり安全で、100% ではありませんが、かなり良いです... Tim Maxey

于 2009-03-06T15:26:51.913 に答える
0

あなたは基本的に、その時点で独自のセッション状態を展開していますが、私はそれで問題ありません。ただし、ユーザー名/パスワードを Cookie に保存する方法は使用しません (暗号化されていても)。サーバー側からそれを期限切れにする方法はありません。テーブル内の行をいつでも削除して、ユーザーに再度ログインさせることができますが、ユーザー名/パスワードを保持している場合、王国への鍵を保持しています.

于 2009-03-06T16:39:13.220 に答える
0

Enterprise Library Crypto App Block を使用して、GUID にすぎない暗号化された Cookie を保存することをお勧めします。GUID を取得し、データベースのセッション テーブルを使用してユーザー情報を追跡します。

セッション開始イベントで、ユーザー情報を取得してキャッシュします。

セッション状態にデータベースを使用しない限り、Web ファームでは機能しないため、セッション オブジェクトをユーザー情報に使用することはお勧めしません。

于 2009-03-06T15:34:46.060 に答える