免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
進(jìn)攻asp.net - 基于窗體的身份驗(yàn)證 - V6bbs

基于窗體的身份驗(yàn)證

基于窗體的身份驗(yàn)證是 ASP.NET 身份驗(yàn)證服務(wù),它使應(yīng)用程序能夠提供它們自己的登錄 UI 和進(jìn)行它們自己的憑據(jù)驗(yàn)證。ASP.NET 驗(yàn)證用戶的身份,將未授權(quán)的用戶重定向到登錄頁并執(zhí)行所有必要的 Cookie 管理。這種身份驗(yàn)證是許多 Web 站點(diǎn)使用的流行方法。

應(yīng)用程序必須被配置成使用基于窗體的身份驗(yàn)證,將 <authentication> 設(shè)置為 Forms 并且拒絕匿名用戶訪問。下面的示例說明如何在所需應(yīng)用程序的 Web.config 文件中完成此配置:

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

管理員使用基于窗體的身份驗(yàn)證來配置要使用的 Cookie 名稱、保護(hù)類型、用于登錄頁的 URL、Cookie 生效的時(shí)間長度以及用于已發(fā)布 Cookie 的路徑。下表顯示了 <Forms> 元素(它是下面的示例中顯示的 <authentication> 元素的子元素)的有效屬性:

<authentication mode="Forms"></authentication>
屬性 說明
loginUrl 未授權(quán)的用戶被重定向到的登錄 URL。它可以在同一臺計(jì)算機(jī)上或在遠(yuǎn)程計(jì)算機(jī)上。如果它在遠(yuǎn)程計(jì)算機(jī)上,兩臺計(jì)算機(jī)需要對 decryptionkey 屬性使用相同的值。
name 用于身份驗(yàn)證目的的 HTTP Cookie 的名稱。注意:如果不止一個(gè)應(yīng)用程序要在一臺計(jì)算機(jī)上使用基于窗體的身份驗(yàn)證服務(wù),則每個(gè)應(yīng)用程序應(yīng)該配置唯一的 Cookie 值。為了避免在 URL 中導(dǎo)致依賴項(xiàng),ASP.NET 在設(shè)置身份驗(yàn)證 Cookie 時(shí)將“/”用作 Path 值,這使 Cookie 被發(fā)送回站點(diǎn)上的每個(gè)應(yīng)用程序。
timeout 以整數(shù)分鐘為單位的時(shí)間量,超過此時(shí)間量,Cookie 將過期。默認(rèn)值是 30。超時(shí)屬性是一個(gè)變化值,從收到最后一個(gè)請求的時(shí)間開始計(jì)算,它過期 n 分鐘。為了避免對性能產(chǎn)生負(fù)面影響,也為了避免那些打開了 Cookie 警告的應(yīng)用程序產(chǎn)生多個(gè)瀏覽器警告,Cookie 在超時(shí)時(shí)間過半時(shí)更新。(這意味著在某些情況下會丟失可能的精度。)
path 用于已發(fā)出 Cookie 的路徑。默認(rèn)值為“/”以避免因路徑中有不匹配的大小而帶來的困難,因?yàn)樵诜祷?Cookie 時(shí),瀏覽器嚴(yán)格區(qū)分大小寫。共享服務(wù)器環(huán)境中的應(yīng)用程序應(yīng)該使用此指令維持專用 Cookie。(另一種方法是,它們可以使用 API 在運(yùn)行時(shí)指定路徑以發(fā)出 Cookie。)
protection 用于保護(hù) Cookie 數(shù)據(jù)的方法。有效值如下所示:
  • All:同時(shí)使用數(shù)據(jù)驗(yàn)證和加密來保護(hù) Cookie。配置的數(shù)據(jù)驗(yàn)證算法基于 元素。如果三重 DES 可用并且密鑰足夠長(48 位),則使用三重 DES 進(jìn)行加密。All 是默認(rèn)(和建議)值。
  • None:用于僅將 Cookie 用于個(gè)性化并且安全要求不高的站點(diǎn)。加密和驗(yàn)證都可以被禁用。盡管以此方式使用 Cookie 需謹(jǐn)慎,但對于使用 .NET 框架實(shí)現(xiàn)個(gè)性化的任何方法,此設(shè)置提供了最佳性能。
  • Encryption:使用 TripleDES 或 DES 加密 Cookie,但不對 Cookie 進(jìn)行數(shù)據(jù)驗(yàn)證。這類 Cookie 容易受到精心選擇的純文本的攻擊。
  • Validation:不加密 Cookie 的內(nèi)容,但驗(yàn)證 Cookie 數(shù)據(jù)在傳輸過程中是否未被更改。若要?jiǎng)?chuàng)建 Cookie,驗(yàn)證密鑰在緩沖區(qū)中與 Cookie 數(shù)據(jù)連接,并且計(jì)算出 MAC 并將其追加到輸出的 Cookie。

配置了應(yīng)用程序后,需要提供一個(gè)登錄頁。下面的示例顯示了一個(gè)簡單的登錄頁。示例在運(yùn)行時(shí)要求 Default.aspx 頁。未授權(quán)的請求被重定向到登錄頁 (Login.aspx),此頁顯示一個(gè)簡單的窗體,提示用戶輸入電子郵件地址和密碼。(使用 Username="jdoe@somewhere.com" 和 Password="password" 作為憑據(jù)。)

驗(yàn)證了憑據(jù)后,應(yīng)用程序調(diào)用下列內(nèi)容:

<script language=JavaScript> function doClick(index, numTabs, id) { document.all("tab" + id, index).className = "tab"; for (var i=1; i < numTabs; i++) { document.all("tab" + id, (index + i) % numTabs).className = "backtab"; } document.all("code" + id, index).style.display = ""; for (var j=1; j < numTabs; j++) { document.all("code" + id, (index + j) % numTabs).style.display = "none"; } } </script>

FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked);            
C# VB JScript  

這將用戶重定向回當(dāng)初請求的 URL。不想執(zhí)行重定向的應(yīng)用程序可以或者調(diào)用 FormsAuthentication.GetAuthCookie 來檢索 Cookie 值,或者調(diào)用 FormsAuthentication.SetAuthCookie 將正確加密的 Cookie 附加到輸出的響應(yīng)中。對于提供嵌入在包含頁中的登錄 UI 的應(yīng)用程序,或者想要更多地控制用戶被重定向到的位置的應(yīng)用程序而言,這些方法很有用。身份驗(yàn)證 Cookie 既可以臨時(shí)又可以永久(“持久”)。臨時(shí) Cookie 只在當(dāng)前瀏覽器會話期間保持。當(dāng)瀏覽器關(guān)閉時(shí),臨時(shí) Cookie 隨即丟失。永久 Cookie 則被瀏覽器保存,并在瀏覽器會話間回發(fā),直到被用戶顯式刪除。


[運(yùn)行示例] | [查看源代碼]
 

VB 基于窗體的/Cookie 身份驗(yàn)證

窗體身份驗(yàn)證使用的身份驗(yàn)證 Cookie 由 System.Web.Security.FormsAuthenticationTicket 類的線性版本組成。信息包括用戶名(但沒有密碼)、使用的窗體身份驗(yàn)證版本、發(fā)出 Cookie 的日期以及可選的應(yīng)用程序特定數(shù)據(jù)的字段。

通過使用 FormsAuthentication.SignOut 方法,應(yīng)用程序代碼可以撤消或移除身份驗(yàn)證 Cookie。這將移除身份驗(yàn)證 Cookie,不論它是臨時(shí)的還是永久的。

還可以使用配置為基于窗體的身份驗(yàn)證服務(wù)提供有效憑據(jù)的列表,如下例所示:

<authentication><credentials passwordformat="SHA1"><user name="Mary" password="GASDFSA9823598ASDBAD"></user><user name="John" password="ZASDFADSFASD23483142"></user></credentials></authentication>

應(yīng)用程序然后可以調(diào)用 FormsAuthentication.Authenticate 并提供用戶名和密碼,ASP.NET 將驗(yàn)證憑據(jù)。根據(jù) passwordFormat 屬性的下列值,憑據(jù)可以存儲在明文中,或者存儲為 SHA1 或 MD5:

哈希類型 說明
Clear 密碼存儲在明文中
SHA1 密碼存儲為 SHA1 摘要
MD5 密碼存儲為 MD5 摘要
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.Net 2.0窗體身份驗(yàn)證機(jī)制詳解(FormsAuthentication)
Asp.net中基于Forms驗(yàn)證的角色驗(yàn)證授權(quán) - 知更鳥 - DonewsBlog
ASP.NET安全問題--Forms驗(yàn)證(后篇)--實(shí)戰(zhàn)篇
ASP.NET安全問題--Forms驗(yàn)證的具體介紹(上)
使用Forms Authentication實(shí)現(xiàn)用戶注冊、登錄 (一)基礎(chǔ)知識
維護(hù) ASP 應(yīng)用程序的安全
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服