也談Asp.net 中的身份驗證
這篇博文,是從初學者的角度補充了一些基礎的概念,以便能有個清晰的認識。
一、配置安全身份驗證模式在Web.config 檔案中,通過
<authentication mode="[Windows|Forms|Passport|None]"> <forms>...forms> <passport/> authentication>
此屬性可以為下列值之一:
○ Windows :將 Windows 驗證指定為預設的身份驗證模式。將它與以下任意形式的 Microsoft Internet 資訊服務 (IIS) 身份驗證結合起來使用:基本、摘要、整合 Windows 身份驗證 (NTLM/Kerberos) 或證書。在這種情況下,您的應用程式將身份驗證責任委託給基礎 IIS。
○ Forms :將 ASP.NET 基於窗體的身份驗證指定為預設身份驗證模式。
○ Passport :將 Microsoft Passport Network 身份驗證指定為預設身份驗證模式。
○ None :不指定任何身份驗證。您的應用程式僅期待匿名使用者,否則它將提供自己的身份驗證。
預設值為 Windows。
二、設定基於窗體的身份驗證
當ASP.NET 基於窗體的身份驗證
示例如下:
<authentication mode="Forms"> <forms cookieless="UseDeviceProfile" defaultUrl="Default.aspx" loginUrl="Login.aspx" name="cnblogs" slidingExpiration="false" timeout="15" /> authentication>
○ cookieless :定義是否使用 Cookie 以及 Cookie 的行為。預設值為 UseDeviceProfile ;
○ defaultUrl :定義在身份驗證之後用於重定向的預設 URL。預設值為 default.aspx ;
○ loginUrl :指定如果找不到任何有效的身份驗證 Cookie,將請求重定向到的用於登入的 URL。預設值為 login.aspx ;
○ name :指定要用於身份驗證的 HTTP Cookie。預設值為 ".ASPXAUTH" ;
如果正在一臺伺服器上執行多個應用程式,並且每個應用程式都需要唯一的Cookie,則必須在每個應用程式的 Web.config 檔案中配置 Cookie 名稱。
○ slidingExpiration :指定是否啟用彈性過期時間。
> True 指定啟用彈性過期時間。在單個會話期間,身份驗證 Cookie 被重新整理,並且每個後續請求的到期時間被重置。在 .NET Framework 1.x 版中,預設值為 True。
> False 指定不啟用可調過期,並指定 Cookie 在最初發出之後,經過一段設定的時間間隔後過期。在 .NET Framework 2.0 版中,預設值為 False。
○ timeout :指定 Cookie 過期前逝去的時間(以整數分鐘為單位)。如果 SlidingExpiration 屬性為 true,則 timeout 屬性是滑動值,會在接收到上一個請求之後的指定時間(以分鐘為單位)後過期。為防止危及效能並避免向開啟 Cookie 警告的使用者發出多個瀏覽器警告,當指定的時間逝去大半時將更新 Cookie。這可能導致精確性受損。永續性 Cookie 不超時。預設值為 "30"(30 分鐘)。
三、配置 Web 應用程式的授權
接下來新增
<authorization> <allow ...="" /> <deny ...="" /> authorization>
allow :向授權規則對映新增一個規則,該規則允許對資源進行訪問。
deny :向授權規則對映新增一條拒絕對資源的訪問的授權規則。
示例如下:
<authorization> <deny users="?" /> authorization>
設定完畢後,Web.config 檔案的整體配置如下:
<!-- 通過節可以配置 ASP.NET 使用的 安全身份驗證模式,以標識傳入的使用者。 --> <authentication mode="Forms"> <forms cookieless="UseDeviceProfile" defaultUrl="Default.aspx" loginUrl="Login.aspx" name="newerSize" slidingExpiration="false" timeout="15" /> authentication> <!--授權:順序是先寫allow,再寫deny,不然就會出現問題。 --> <authorization> <deny users="?"/> authorization>
四、在頁面程式中使用Forms 身份驗證
在頁面程式的後臺程式碼中,我們使用FormsAuthentication 類為Web 應用程式管理 Forms 身份驗證服務。
在登入頁面Login.aspx 中,程式碼如下:
//登入 protected void btnLogin_Click(object sender, EventArgs e) { string name = txtName.Text.Trim(); string pwd = txtPwd.Text.Trim(); if ("Andy" == name && "123" == pwd) { //方式一 //FormsAuthentication.RedirectFromLoginPage(name, true); /*引數二為true:表示建立持久 Cookie(跨瀏覽器會話儲存的 Cookie)*/ //方式二 //為使用者建立一個票證,並將其放入cookie或者url中(具體看你怎麼設定票證的儲存方式) FormsAuthentication.SetAuthCookie(name, true); Response.Redirect("Default.aspx"); } else { Response.Write("alert('登入失敗!')"); } } //登出 protected void btnExit_Click(object sender, EventArgs e) { //從瀏覽器刪除 Forms 身份驗證票證。 FormsAuthentication.SignOut(); }
登入成功後,跳轉到的預設頁面Default.aspx 中,程式碼如下:
protected void Page_Load(object sender, EventArgs e) { //User:獲取有關發出頁請求的使用者的資訊。 string username = User.Identity.Name; Label1.Text = username + ":登入成功!"; }
User.Identity.Name 用於獲得Cookie 中的使用者名稱。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-681360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中國身份證號驗證庫
- 【asp.net core 系列】13 Identity 身份驗證入門ASP.NETIDE
- Asp.Net WEBAPI 增加身份驗證 (OAUTH 2.0方式)ASP.NETWebAPIOAuth
- 從零搭建一個IdentityServer——聊聊Asp.net core中的身份驗證與授權IDEServerASP.NET
- Rust中實現JWT身份驗證RustJWT
- 身份證驗證工具類
- ASP.NET Core之身份驗證和授權Cookie&SessionASP.NETCookieSession
- Kerberos 身份驗證在 ChunJun 中的落地實踐ROS
- 【PTA】查驗身份證
- PHP 驗證身份證號碼PHP
- C++身份證號驗證C++
- asp.net core 3.1多種身份驗證方案,cookie和jwt混合認證授權ASP.NETCookieJWT
- Spring Boot中的Firebase身份驗證+Firestore整合原始碼Spring BootREST原始碼
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- Apple MDM 工具中存在身份驗證漏洞APP
- js正則驗證身份證號JS
- python - 驗證身份證合法性Python
- 客戶端身份驗證客戶端
- 舊香港身份證校驗
- kafka SASL/PLAIN 身份驗證KafkaAI
- Linux中為SSH啟用雙因素身份驗證Linux
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- 一個簡單的身份證校驗
- javascript身份證號碼校驗JavaScript
- SpringBoot整合JWT做身份驗證Spring BootJWT
- 7-3 查驗身份證
- 身份證合法性校驗
- JS驗證18位身份證號的正確性JS
- 理解ASP.NET Core - 基於Cookie的身份認證(Authentication)ASP.NETCookie
- 理解ASP.NET Core - 基於JwtBearer的身份認證(Authentication)ASP.NETJWT
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- Spring Security 6中使用PKCE實現身份驗證Spring
- C++批次核驗身份證真偽、實名認證介面、身份證識別C++
- JS校驗身份證號的合法性JS
- node實現基於token的身份驗證
- flowable 繞過idm自帶的身份驗證
- 身份證最後一位的校驗
- 零知識證明在隱私保護和身份驗證中的應用
- 簡聊 Session 與 Token 身份驗證Session