0

まず、フォーム認証を使用していません。

私が望むことをほとんど行う素晴らしいチュートリアルを見つけました: http://www.codeproject.com/Questions/358434/Keep-me-signed-in-until-Loggged-out

唯一の問題は、それが良い考えとは思えないことです。ユーザー名を Cookie に保存します。それはとても悪いようです。

このチュートリアルのようなことを安全な方法で行うにはどうすればよいですか?

私は本質的にこの基本的な流れが欲しいだけです:

if user logged in then show page

ユーザーは、セッションの間 (30 分間非アクティブ)、または明示的にログアウトすることを選択するまで、ログインするオプションを選択できます。

これにはデータベースにセッションテーブルが必要になると感じていますが、よくわかりません。

これはイントラネット用であるため、最上位のセキュリティである必要はありませんが、それでもある程度安全であることを望みます。

ありがとう

4

3 に答える 3

1

最も簡単な方法は、ログイン機能を使用することです。確認したら、次を追加するだけです。

FormsAuthentication.SetAuthCookie(theUserName, persistCookieBoolean);

これで、認証 Cookie が設定されました。暗号化または復号化は必要ありません。次のようなユーザー名を取得します。

HttpContext.Current.User.Identity.Name

そして、彼らがログインしているかどうかを確認します:

HttpContext.Current.User.Identity.IsAuthenticated

また、web.config でも簡単に承認を設定できるようになりました。関連記事: ASP .Net での手動アクセス制御

于 2013-02-07T14:35:32.180 に答える
0

Cookieに保存する前に、データ(ユーザー名など)を暗号化します。

Cookieを読み取り、データを復号化してから検証します。

これをチェックして:

.NETアプリケーションでのデータの暗号化と復号化

.NETでの文字列の暗号化/復号化

于 2013-02-07T14:25:59.173 に答える
0

セッションを使用できます。

サンプル コード VB:

ログイン時に次のことを行います。

Session("Username") = "username"

次に、ページの読み込み時に毎回Session("Username")、データがあるかどうか、またはnullでないかどうかを確認します。

null または空の場合、セッションの有効期限が切れており、ページから追い出すことができます。

于 2013-02-07T15:09:05.960 に答える