私は、セッション変数を使用してユーザーを追跡するアプリケーションに取り組んでおり、マスターページでその存在を確認し、それ以外の場合はユーザーをノックアウトしてログインさせます。これをフォーム認証に変更したかったのは、より安全でデータが暗号化されていると読んだからです。
実際に暗号化されているデータを誰か教えてもらえますか? サイトでフォーム認証を設定しようとしましたが、正常に動作し、ユーザーは適切に追跡されており、ログインせずにページにアクセスすることはできません。ただし、Fiddler を使用してリクエスト本文を見ると、すべてのフォーム フィールドが表示されます。コンテンツ。セッション変数から生成された Cookie の場合のように、ハッカーはそれを使用してデータを変更し、リクエストを再送信できませんか? このアプリケーションは SSL を使用していないので、SSL が本文を暗号化することは理解していますが、それはフォーム認証でも行われることだと思いました。それ以外の場合は、Cookie のセッション ID だけで何を暗号化しますか?
これが私が使用していたコードです:
<authentication mode="Forms">
<forms loginUrl="default.aspx" name=".ASPXFORMSAUTH_Test" defaultUrl="home.aspx" protection="All"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
ログインページで、Cookieを手動で作成しようとしました:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
txtEmail.Text,
DateTime.Now,
DateTime.Now.AddMinutes(30),
false,
txtEmail.Text,
FormsAuthentication.FormsCookiePath);
// Encrypt the ticket.
string encTicket = FormsAuthentication.Encrypt(ticket);
// Create the cookie.
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
// Redirect back to original URL.
Response.Redirect(FormsAuthentication.GetRedirectUrl(txtEmail.Text, false));
私も試しました:
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);
以前、同じ結果が得られました。Fiddler のリクエスト本文には、送信されたすべてのフィールドとその内容が表示されます。