Forms基於窗體身份驗證

2021-04-13 21:20:23 字數 3134 閱讀 2708

forms 身份驗證通常指這樣乙個系統,在該系統中使用 http 客戶端重定向將未經身份驗證的請求重定向到 html 窗體。如果應用程式需要在登入時通過 html 窗體收集自己的使用者憑據,那麼選擇 forms 身份驗證就很好。使用者提供憑據並提交該窗體。如果應用程式對請求進行身份驗證,系統會發出乙個 cookie,在其中包含用於重新獲取標識的憑據或金鑰。隨後發出在請求頭中具有該 cookie 的請求。asp.net 事件處理程式使用應用程式指定的任何驗證方法對這些請求進行身份驗證和授權。

="name"loginurl="url"protection

="all|none|encryption|validation"timeout

="30"path="/"requiressl="true|false"slidingexpiration="true|false">

可選屬性

屬性選項

說明name

指定要用於身份驗證的 http cookie。預設情況下,name的值是 .aspxauth。如果在單個伺服器上正執行多個應用程式並且每一應用程式均要求唯一的 cookie,則您必須在每一應用程式的 web.config 檔案中配置 cookie 名稱。

loginurl

指定如果沒有找到任何有效的身份驗證 cookie,為登入將請求重定向到的 url。預設值為 default.aspx。

protection指定 cookie 使用的加密型別(如果有)。

all指定應用程式同時使用資料驗證和加密來保護 cookie。該選項使用已配置的資料驗證演算法(基於 元素)。如果三重 des (3des) 可用並且金鑰足夠長(48 位或更多),則使用三重 des 進行加密。all是預設(和建議)值。

none指定對於將 cookie 僅用於個性化並且具有較低的安全要求的站點而言,同時禁用加密和驗證。不推薦以此方式使用 cookie;但是,這是使用 .net framework 啟用個性化的占用資源最少的方式。

encryption指定使用三重 des 或 des 對 cookie 進行加密,但不對該 cookie 執行資料驗證。以此方式使用的 cookie 可能會受到精選的純文字的攻擊。

validation指定驗證方案驗證已加密的 cookie 的內容在轉換中是否未被改變。cookie 是使用 cookie 驗證建立的,方式是:將驗證金鑰和 cookie 資料相連線,然後計算訊息身份驗證** (mac),最後將 mac 追加到輸出 cookie。

timeout

指定以整數分鐘為單位的時間量,超過此時間量,cookie 將過期。預設值是 30。如果slidingexpiration屬性為true,則timeout屬性是乙個彈性值,以收到最後乙個請求後指定的分鐘數為到期時間。為避免危及效能,以及為避免向啟用 cookie 警告的使用者顯示多個瀏覽器警告,在經過了超過一半的指定時間後更新該 cookie。這可能導致精確性上的損失。永續性 cookie 不超時。

path

為由應用程式發出的 cookie 指定路徑。預設值是正斜槓 (/),這是因為大多數瀏覽器是區分大小寫的,並且如果路徑大小寫不匹配,將不傳送回 cookie。

requiressl

指定是否需要安全連線來轉換身份驗證 cookie。

true指定必須使用安全連線來保護使用者憑據。如果是true, asp.net 為身份驗證 cookie 設定

,相容的瀏覽器不返回 cookie,並且除非連線使用的是安全套接字層 (ssl)。

false指定在傳輸 cookie 時,安全連線不是必需的。預設值為false

slidingexpiration

指定是否啟用彈性過期時間。在單個會話期間,彈性過期時間針對每個請求重置當前身份驗證 cookie 的過期時間。

true指定啟用彈性過期時間。在單個會話期間,身份驗證 cookie 被重新整理,並且每個後續請求的到期時間被重置。asp.net 版本 1.0 的預設值為true

false指定不啟用彈性過期時間,並指定 cookie 在最初發出之後,經過一段設定的時間間隔後失效。預設值為false

通過在應用程式的web.config檔案中加入乙個

入口,可以進行基於窗體的身份鑑別。如下所示:

<

system.web

>

<

authentication

mode="forms">

<

forms

name="auth" loginurl="login.aspx" protection="all" path="/">

forms

>

authentication

>

system.web

>

設定窗體的驗證

問號 (?) 表示拒絕匿名使用者訪問;星號 (*) 表示拒絕所有使用者訪問。

在**中新增已驗證的使用者

formsauthentication.redirectfromloginpage(txtusernm.text.trim(),true);

移除身份驗證票

formsauthentication.signout();

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...

Forms身份驗證

在進行forms身份驗證時,如果採用如下的方法配置web.config的話,則會出現所有的頁面都要進行驗證,這是使用者所不能容忍的,具體 如下 這裡我還要說明一點,很多初學者都會把上面的 寫為 結果會出現不能識別forms節點。如果要實現某個目錄下的forms驗證哪個怎麼辦呢?其實 很簡單,在新增完...

簡單Forms身份驗證

web.config login.aspx.cs using system using system.data using system.configuration using system.collections using system.web using system.web.security...