熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp.net form驗證

2013-11-13 10:39:20  來源: .NET編程 

  讀書時最常用判斷登陸的就是登陸時用cookie或session存儲然後每個頁面判斷是否登陸

  這樣做每個頁面都要判斷很麻煩

  畢業半年了這半年學會了用類重寫事件OnLoad()來這樣每個頁面繼承這個類!這個類裡可以判斷是否登陸判斷權限等等一些操作

  可是如果只有登陸驗證沒有權限其他操作的話!這樣用form驗證比繼承類來得更方便這個也是今天才想到的!由於讀書時注重玩結果好多沒注意聽今天重新學習了下form驗證

  首先配置webconfig

  在systenweb內配置

  
<authentication mode="Forms">
      <forms loginUrl="admin/Loginaspx" defaultUrl="admin/Defaultaspx" timeout=""></forms>
</authentication>
<!
      name 屬性指定驗證所需要的 cookie 的名稱默認值是“ASPXAUTH”如果在一個服務器上下掛了多個 Web 應用程序必須重新指定該名稱因為每個應用程序都需要唯一的 cookie

  loginUrl 屬性指定登錄用的頁面用於提供用戶名和密碼默認值是“loginaspx”該頁面可以和需要提供身份驗證才能訪問的頁面放在同一個目錄下(呵我原以為這個頁面要放在單獨的可公開訪問的目錄下)

  defaultUrl 屬性指定登入後跳轉到的頁面默認值是“defaultaspx”當然你也可以跳轉到用戶登入前的前一個頁面並且這是 NET 的默認實現
      timeout cookie過期時間
>

  <!Systemweb同級>
<location path="admin">
    <systemweb>
      <authorization>
        <deny users="?"/><拒絕匿名用戶>
      </authorization>
    </systemweb>
</location>

  我做的後台單獨放在一個文件夾內!這樣只要給這個文件夾設置權限就可以如果未登陸而浏覽這個文件夾內的任意文件會跳轉到登陸頁面登陸成功跳轉到ReturnUrl也就是你之前訪問的頁面如果ReturnUrl為空跳轉到defaultUrl也就是你配置的默認url

  接下來是代碼

  代碼

  
if (TextBoxText == "adminss" && TextBoxText == "admin")
        {
           FormsAuthenticationRedirectFromLoginPage(TextBoxText CheckBoxChecked);
            //CheckBoxChecked如果為true將會持久保存cookie直到cookie失效
            //後面可以接ResponseRedirect(“xxaspx”)會跳轉到你指定的頁面可是並不可以沒有驗證就跳轉!
            //如果沒有上面的驗證票而直接跳轉會失敗因為沒有建立身份驗證票
            //ResponseRedirect(ContextRequest["ReturnUrl"]);
            //ResponseRedirect("xxaspx");
        }
        else
            ResponseWrite("用戶名或密碼錯誤!");

  有些頁面要根據判斷用戶是否登陸呈現不同的排版

  if(UserIdentityIsAuthenticated)//這個是用來判斷用戶是否登陸
{
   //已登陸;
}
else
{
   //未登陸
}

  有時還要取用戶的用戶名顯示在頁面上

  UserIdentityName//獲取登陸名其實就是之前FormsAuthenticationRedirectFromLoginPage(TextBoxText CheckBoxChecked);中的TextBoxText;

  好了之後就是退出代碼了

  FormsAuthenticationSignOut();


From:http://tw.wingwit.com/Article/program/net/201311/14228.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.