ASP.NET基於表單的驗證實現網上安全訪問,管理(1)

來源:互聯網
上載者:User

 

什麼時候用?

比如ASP.NET程式的一個Admin檔案夾,是專門進行網上管理用的(比如後台資料維護),一般訪問者不能訪問裡面的所有檔案.只有通過驗證的使用者才能訪問.按照以前的ASP的做法,是在使用者通過Login頁面時,設定Session(即Cookie)來判斷使用者是否通過驗證,每個Admin檔案夾裡的分頁檔都要設定驗證語句,而且並不是很安全,這個時候,ASP.NET的4種驗證方式之一:基於表單的驗證就派上了用場.您做的僅是在Admin檔案夾裡面放置一個只有幾行語句的Web.config檔案.

怎樣用?

這個問題您可以去看書籍上的介紹(Wrax出版的《ASP.NET進階編程》),不過,我這裡有自己常用的方式,不妨看看.
檔案目錄為:
 +BIN
 +Admin
    - *.aspx
    - web.config //Admin檔案夾下的web.config
 login.aspx
 web.config //根目錄的web.config
1,根目錄的web.config的配置

<configuration>
 <system.web>
  <authentication mode="Forms">
   <forms name="mycookiename" loginUrl="login.aspx" protection="All" timeout="30">
   </forms>
  </authentication>
  <authorization>
   <allow users="*"/>
  </authorization>
 </system.web>
</configuration>

2,Admin檔案夾下的web.config的配置

<configuration>
 <system.web>
  <authorization>
   <deny users="?" />
  </authorization>
 </system.web>
</configuration>

3,login.aspx的配置
此頁面就是一個驗證登陸頁面:

<asp:textbox id=textname runat=server/>帳號
<asp:textpassword id=textpassword runat=server>密碼
<asp:checkbox id=mycheckbox runat=server/>是否記住密碼,永久登陸
<asp:button runat=server onclick=btnloginclick text=登陸/>

 

處理事件1(當使用者點擊登陸按鈕時候)

void btnloginclick(Object sender,EventArgs e)
{
 if(使用者通過驗證)//這一點可以在bin目錄放置自己的dll檔案來驗證使用者,返回一個bool.
 {
 FormsAuthentication.RedirectFromLoginPage(UserName.Text, mycheckbox.Checked);//這句用來儲存Cookie來說明使用者UserName.Text通過的驗證,可以訪問Admin檔案夾了,另外,如果那個永久登陸的checkbox被checked了,則這個驗證Cookie的失效日期可以長達50年(預設為瀏覽器時間).
 ResponseRedirect("Admin");//這時,就可以暢通無阻訪問Admin檔案夾了.
 }
}

處理事件2(當使用者已經通過驗證,就沒有必要在訪問login.aspx時候再次輸入密碼了)
這個由表單驗證自動完成,相當於:

void Page_Load(Object sender,EventArgs e)
{
 if(Context.User.Identity.IsAuthenticated)Response.Redirect("Admin");
}

4,登出驗證:
用FormsAuthentication.SignOut();

其實,上述方案並不是很安全的解決方案.只是很實用,簡單,又比較安全的驗證解決方案.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.