天天看點

運用httpmode進行身份驗證

假設使用者名和密碼放在cookies username 和password中,在httpmoduler來驗證資料,在所有資料未到達伺服器端的時候做一個判斷。符合條件,就讓進去,不然就要去注冊。

1.建立一個aps.net web項目

2.添加webconfigwenjnia檔案

3.添加一個類checklogin.cs

checklogin.cs的

運用httpmode進行身份驗證
public class checklogin:IHttpModule
運用httpmode進行身份驗證
運用httpmode進行身份驗證
... {
運用httpmode進行身份驗證
   //記錄目前的網址
運用httpmode進行身份驗證
    private string url;
運用httpmode進行身份驗證
運用httpmode進行身份驗證
   // 在HttpModule的 AuthorizeRequset實行驗證。
運用httpmode進行身份驗證
    public void Application_AuthorizeRequest(object sender, EventArgs e)
運用httpmode進行身份驗證
運用httpmode進行身份驗證
    ...{
運用httpmode進行身份驗證
         HttpApplication application = (HttpApplication)sender;
運用httpmode進行身份驗證
運用httpmode進行身份驗證
        string name = "admin";
運用httpmode進行身份驗證
        string password="123";
運用httpmode進行身份驗證
        string nameGet ;
運用httpmode進行身份驗證
        string passwordGet;
運用httpmode進行身份驗證
運用httpmode進行身份驗證
        //擷取但前網址
運用httpmode進行身份驗證
         url = application.Request.RawUrl.ToString();
運用httpmode進行身份驗證
         url = url.Substring(url.LastIndexOf(’/’) + 1);
運用httpmode進行身份驗證
        if (url != "login.aspx")
運用httpmode進行身份驗證
運用httpmode進行身份驗證
        ...{
運用httpmode進行身份驗證
            if (application.Request.Cookies["test"] != null)
運用httpmode進行身份驗證
運用httpmode進行身份驗證
            ...{                     //資料擷取
運用httpmode進行身份驗證
                 nameGet = application.Request.Cookies["name"].Value.ToString();
運用httpmode進行身份驗證
                 passwordGet=application.Request.Cookies["password"].Value.ToString();                      //資料驗證
運用httpmode進行身份驗證
                if (name!= nameGet || password!=passordGet)
運用httpmode進行身份驗證
運用httpmode進行身份驗證
                ...{
運用httpmode進行身份驗證
                    //結束整個Request.直接跳到注冊頁面,這樣就省了伺服器很多的負擔。
運用httpmode進行身份驗證
                     application.CompleteRequest();
運用httpmode進行身份驗證
                     application.Response.Redirect("~/login.aspx");
運用httpmode進行身份驗證
                 }
運用httpmode進行身份驗證
                else
運用httpmode進行身份驗證
運用httpmode進行身份驗證
                ...{
運用httpmode進行身份驗證
                     application.Response.Write("通過驗證!");
運用httpmode進行身份驗證
                 }
運用httpmode進行身份驗證
運用httpmode進行身份驗證
             }
運用httpmode進行身份驗證
            else
運用httpmode進行身份驗證
運用httpmode進行身份驗證
            ...{
運用httpmode進行身份驗證
                 application.CompleteRequest();
運用httpmode進行身份驗證
                 application.Response.Redirect("~/login.aspx");
運用httpmode進行身份驗證
運用httpmode進行身份驗證
             }
運用httpmode進行身份驗證
運用httpmode進行身份驗證
運用httpmode進行身份驗證
         }
運用httpmode進行身份驗證
運用httpmode進行身份驗證
     }
運用httpmode進行身份驗證
運用httpmode進行身份驗證
    public void Dispose() ...{}
運用httpmode進行身份驗證
運用httpmode進行身份驗證
    //注冊事件
運用httpmode進行身份驗證
    public void Init(HttpApplication application)
運用httpmode進行身份驗證
運用httpmode進行身份驗證
    ...{
運用httpmode進行身份驗證
         application.AuthorizeRequest += new EventHandler(Application_AuthorizeRequest);
運用httpmode進行身份驗證
運用httpmode進行身份驗證
     }
運用httpmode進行身份驗證
運用httpmode進行身份驗證
}
運用httpmode進行身份驗證
運用httpmode進行身份驗證

4.在webconfig的system.web中添加如下的節點:

注意網站中一定要有login,aspx.

繼續閱讀