asp.Netでのフォーム認証(冒頭)


asp.Netでのフォーム認証(冒頭)
 
私たちはウェブサイトを作成するときに、認証によく使用します.asp.NetにはWindows、Froms、Passportなど、いくつかの認証方式が内蔵されています.このいくつかの認証方法はそれぞれ異なります(ここでは主にForms検証について詳しく説明します.Forms検証は現在流行している認証方法の一つなので、他のことを知りたいなら、自分でネットで資料を調べることができます.ここでは一つ一つ紹介しません).一般的に、Webサイトの認証方法には、次の手順があります.
1、ユーザー名とパスワードを入力し、「OK」ボタンをクリックします.
2、バックグラウンドでユーザー名とパスワードを判断し、エラーがあればヒントを返す.正しい場合は、アクセス可能なページに入ります.
以前のASP時代には、通常、ユーザー名とパスワードが一致しているかどうかを検証した後、セッションを作成し、検証が必要なページごとにセッションが存在するかどうかを判断し、存在する場合はページ内容を表示していました.存在しない場合は、プロンプトが生成され、ログインページにジャンプしますが、sessionがタイムリーにRemoveしないとメモリが消費され、パフォーマンスに影響します.
だからasp.Net時代には、このプロセスは大幅に減少し、検証が必要なページごとにSessionを検証する必要はなくなり、次のようなステップを行うだけで、認証プロセスを完了することができます.
第一歩:webを修正する.configファイル:
1、およびセクションが見つかり、フォーム認証の使用を表すFormsに変更されました.
    2、およびに「」すべての匿名ユーザーを拒否します.
ステップ2:loginを作成します.aspxファイル:
最初のステップを経た後、ユーザーがウェブサイトのどのファイルにアクセスしても、認証がない限り、asp.Netは自動的にloginにジャンプします.AspxのWebページでは、URLでReturnUrlパラメータを使用して、ユーザーが現在アクセスしているWebページを渡します.
ユーザが認証なしにtestに直接アクセスすると仮定する.aspxファイルではasp.Netは自動的にloginをジャンプします.aspxページは、ブラウザウィンドウのアドレスバーのURLが「login.aspx?ReturnUrl=%2 ftest.aspx」であるため、認証に合格した後、ReturnUrlパラメータで指定したページにWebページを戻すことができます.
ステップ3:login.aspxファイルでの認証:
まず、外にはテキストボックスとパスワードボックスが作成され、ユーザーがユーザー名とパスワードを入力した後、「発行」ボタンをクリックすると、データベースに行って認証され、詳細は書かれません.ここで入力したユーザー名が1で、パスワードが1であれば、認証が通過したとみなされます.
認証が完了したらFormsAuthenticationを使用する必要があります.SetAuthCookie()は、ユーザーに認証された手形を作成し、Cookieに追加します(後で、Webサイトの他のWebページにアクセスすると、認証に使用する必要はありません).コミットボタンをクリックしたコードは次のとおりです.
注意:using System.Web.Security;
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (txtUser.Text == "1" && txtPwd.Text == "1")
        {
            //               ,         Cookie 
            //SetAuthCookie                。
            // SetAuthCookie       true       Cookie(          Cookie), false              
            FormsAuthentication.SetAuthCookie(txtUser.Text, false);

            //           ReturnUrl       
            if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
            {
                Response.Redirect("Default.aspx");
            }
            else
            {
                Response.Redirect(Request.QueryString["ReturnUrl"].ToString());
            }
        }
    }