也談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 角色身份驗證的使用ASP.NET
- Asp.Net MVC 身份驗證-FormsASP.NETMVCORM
- ASP.Net WebService 身份驗證 FormsASP.NETWebORM
- Oracle的身份驗證Oracle
- javascript 驗證身份證JavaScript
- WEB身份驗證Web
- 身份證驗證工具類
- 【Dflying Chen】在ASP.NET Atlas中結合Membership進行身份驗證ASP.NET
- 【asp.net core 系列】13 Identity 身份驗證入門ASP.NETIDE
- Asp.Net WEBAPI 增加身份驗證 (OAUTH 2.0方式)ASP.NETWebAPIOAuth
- Kerberos 身份驗證在 ChunJun 中的落地實踐ROS
- JS驗證身份證的合法性JS
- 從零搭建一個IdentityServer——聊聊Asp.net core中的身份驗證與授權IDEServerASP.NET
- PHP 驗證身份證號碼PHP
- 中國身份證號驗證庫
- C++身份證號驗證C++
- C#驗證身份證號C#
- 也談用在ASP.Net中操作IIS (轉)ASP.NET
- Asp.net中基於Forms驗證的角色驗證授權ASP.NETORM
- 傳統 Web 應用中的身份驗證技術Web
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- ASP.NET身份證識別判定ASP.NET
- 作業系統身份驗證和口令檔案身份驗證總結作業系統
- js正則驗證身份證號JS
- PHP 身份證精確匹配驗證PHP
- 身份證號碼驗證系統
- 身份證號碼之js驗證JS
- ASP.NET七大身份驗證方式及解決方案ASP.NET
- oracle常見身份驗證Oracle
- ASP.NET MVC 5改進了基於過濾器的身份驗證ASP.NETMVC過濾器
- 關於Java Mail的身份驗證!JavaAI
- 資料庫的身份驗證方式資料庫
- Apple MDM 工具中存在身份驗證漏洞APP
- Ext實現的身份證格式驗證程式碼
- asp.net core 3.1多種身份驗證方案,cookie和jwt混合認證授權ASP.NETCookieJWT
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- 身份證號碼驗證演算法演算法
- js實現身份證號碼驗證JS