程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET安全問題--Froms驗證的具體介紹(中篇)

ASP.NET安全問題--Froms驗證的具體介紹(中篇)

編輯:關於ASP.NET

前言:今天是端午節,大家節日快樂!別忘了過我們的傳統節日!!!因為前一篇文章已經談論了與Forms驗證有關的一些理論的知識,所以本篇主要講述Forms驗證一般的使用方法,也給出一些代碼。可能有些話題之前園子裡有朋友談論過,如果有重復,那麼就權當是復習也行!

本篇的話題如下:

啟用Forms身份驗證

用戶信息的存儲

web.config配置的一些用法

Forms驗證簡單的功能介紹

Forms驗證中的Cookie問題

啟用Forms身份驗證

相信大家對很清楚如何啟用 Forms驗證,但是這裡我還是羅嗦一下。

我們只要在 web.config文件中配置如下就行了:

<authentication mode="Forms"/>

這樣之後,ASP.NET運行時就知道我們啟用了Forms驗證,在生命周期的驗證階段就激活FormsAuthenticationModule模塊。

還有一點要特別注意:<authentication/>元素節點只能在應用程序的根文件夾中的 web.config中配置。如果在子文件夾中使用這個節點就會報錯。這也說明了每個應用程序只能定義一個身份驗證類型。

而且在<authentication/>節點中,我們還可以進行更多的設置。如下:

<authentication mode="Forms ">
       <forms name="MyCookie"
               loginUrl="Login.aspx"
              timeout="60"
              path="/"
              protection="All">

       </forms>
  </authentication>

我們下面就看看<forms>節點中的屬性的含義和用途:

name:定義身份驗證cookie的名稱。因為我們把身份驗證的票據是存放在cookie中的,而且我們必須給身份驗證cookie取具有唯一性的名稱,防止和其他的應用程序中的cookie沖突。

loginUrl:從英文名字就可以知道是關於登錄的。實際上就是標明把用戶重定向到哪個頁面取登錄。

timeout:設置身份驗證cookie持續的時間,以分鐘為單位的。而且這個時間是一個相對的時間,就是說每次對用戶進行驗證時,cookie的期限就會被重新設置。如果在60分鐘內用戶再沒有向服務器發起請求,那麼cookie就過期,之後如果用戶再次發起請求,那麼就要重新輸入用戶名和密碼等信息。

path:設置cookie的保存的路徑,一般是設置為"/",我們不要輕易的改變。

我們之前也說過,我們的身份驗證的票據是加密以後再存放如cookie中的,然後再把cookie發送到客戶端。當客戶端再次請求的時候,再服務器端就會解析客戶端發送來的cookie信息,我們必須要確認:客戶端發送來的cookie信息就是我們之前從服務器端發送過去的,也就是說,我們要判斷,我們的cookie在客戶端是否被篡改了。

所以,這就是<forms/>中屬性protection的用途。protection的值有四個:

Encryption:對cookie的內容信息進行加密。

Validation:向cookie中的內容添加MAC(消息驗證代碼),以便服務器判斷cookie是否被篡改了。

None:禁用加密和篡改檢查

All:同時啟用加密和篡改檢查。

默認情況下是"All",因為它可以把數據加密放入cookie中,而且對返回到服務器端的cookie進行驗證。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved