ASP.NET 中提供了多種認(rèn)證方式,比如大名鼎鼎的Win " /> 婷婷精品视频,97se狠狠狠综合亚洲狠狠,日韩精品视频三区

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

ASP.NET 2.0 中Forms安全認(rèn)證

即:使用 Membership 類 + FormsAuthentication 一起使用以創(chuàng)建的用戶管理與認(rèn)證的系統(tǒng)。
當(dāng)然這兩部分都可以單獨(dú)使用,今天先著重后者,至于前者,我下一篇隨筆將會(huì)寫到。

ASP.NET 中提供了多種認(rèn)證方式,比如大名鼎鼎的Windows 身份驗(yàn)證
Windows 身份驗(yàn)證模式根據(jù) IIS 所提供的憑據(jù)將當(dāng)前 User 屬性值設(shè)置為 WindowsIdentity,但它不修改提供給操作系統(tǒng)的 Windows 標(biāo)識(shí)。提供給操作系統(tǒng)的 Windows 標(biāo)識(shí)用于進(jìn)行權(quán)限檢查(如 NTFS 文件權(quán)限檢查)或者用于使用集成安全性連接到數(shù)據(jù)庫(kù)。默認(rèn)情況下,此 Windows 標(biāo)識(shí)是 ASP.NET 進(jìn)程的標(biāo)識(shí)。在 Microsoft Windows 2000 和 Windows XP Professional 上,此標(biāo)識(shí)是 ASP.NET 輔助進(jìn)程的標(biāo)識(shí),即本地 ASPNET 帳戶。在 Windows Server 2003 上,此標(biāo)識(shí)是 ASP.NET 應(yīng)用程序所屬的 IIS 應(yīng)用程序池的標(biāo)識(shí)。默認(rèn)情況下,此標(biāo)識(shí)是 NETWORK SERVICE 帳戶。
通過(guò)啟用模擬功能,可以將 ASP.NET 應(yīng)用程序的 Windows 標(biāo)識(shí)配置為 IIS 所提供的 Windows 標(biāo)識(shí)。也就是說(shuō),指示 ASP.NET 應(yīng)用程序模擬 IIS 為 Windows 操作系統(tǒng)驗(yàn)證的所有任務(wù)(包括文件和網(wǎng)絡(luò)訪問(wèn))提供的標(biāo)識(shí)。(解釋來(lái)自MSDN Library)

還有一種常有的認(rèn)證即是 Forms 身份驗(yàn)證
Forms 身份驗(yàn)證使不要求 Windows 身份驗(yàn)證的 Web 應(yīng)用程序可以進(jìn)行用戶和密碼驗(yàn)證。使用 Forms 身份驗(yàn)證時(shí),用戶信息存儲(chǔ)在外部數(shù)據(jù)源中,例如Member 數(shù)據(jù)庫(kù),或存儲(chǔ)應(yīng)用程序的配置文件中。在用戶通過(guò)身份驗(yàn)證后,F(xiàn)orms 身份驗(yàn)證即會(huì)在 Cookie 或 URL 中維護(hù)一個(gè)身份驗(yàn)證票證,這樣已通過(guò)身份驗(yàn)證的用戶就無(wú)需在每次請(qǐng)求時(shí)都提供憑據(jù)了。

這樣一來(lái)就方便也安全了,那具體怎么完成Forms身份認(rèn)證的設(shè)置呢?

首先打開(kāi)配置文件web.config
找到<system.web>節(jié)點(diǎn)下的 <authentication> 和 <authorization>節(jié)點(diǎn)加入
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.ASPx" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<authentication>節(jié)點(diǎn)是設(shè)置認(rèn)證方式,這里我們制定 Forms
<forms>節(jié)點(diǎn)內(nèi)的屬性可以制定 認(rèn)證頁(yè)面(登錄頁(yè)面)、默認(rèn)頁(yè)面、是否使用cookie、認(rèn)證超時(shí)時(shí)間等等。
這里我們只指定認(rèn)證頁(yè)面 loginUrl="login.ASPx"
<authorization> 節(jié)點(diǎn)是認(rèn)證節(jié)點(diǎn)
<deny> 是否認(rèn)節(jié)點(diǎn) 指定屬性 users="?"即為未經(jīng)過(guò)認(rèn)證的人都需要去認(rèn)證頁(yè)面進(jìn)行認(rèn)證
與之對(duì)應(yīng)的是<allow>允許節(jié)點(diǎn)

這樣一來(lái)思路就清晰了,無(wú)論用戶訪問(wèn)什么頁(yè)面服務(wù)器會(huì)判斷用戶是否通過(guò)認(rèn)證,如果沒(méi)有轉(zhuǎn)到認(rèn)證頁(yè)面。

下一步將要確定在login.ASPx.cs文件中如何完成我們認(rèn)證工作了
public void Login_OnClick(object sender, EventArgs args)
{
if (BLL.CheckLogin(this.Txbusername.Text,this.Txbuserpwd.Text ))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text,NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
這里的CheckLogin(用戶名,密碼) 方法是在邏輯層使用的驗(yàn)證用戶是否合法的方法
當(dāng)然如果用 Membership類繼承的一些驗(yàn)證方法會(huì)更簡(jiǎn)單,但是在此不詳細(xì)說(shuō)明了。

FormsAuthentication 類(終于提到主人公了),它所屬的命名空間為 System.Web.Security;
FormsAuthentication 是用來(lái)設(shè)置認(rèn)證的類,如果用戶合法,把用戶名保存在cookie中,之后用戶再次訪問(wèn)或訪問(wèn)其他頁(yè)面都無(wú)需再次認(rèn)證
它內(nèi)部的常用方法有
RedirectFromLoginPage(用戶名(string),是否把用戶名長(zhǎng)期保存在coolie中(bool))
將經(jīng)過(guò)身份驗(yàn)證的用戶重定向回最初請(qǐng)求的 URL 或默認(rèn) URL

SetAuthCookie(用戶名(string),是否把用戶名長(zhǎng)期保存在coolie中(bool))
為提供的用戶名創(chuàng)建一個(gè)身份驗(yàn)證票證,并將其添加到響應(yīng)的 Cookie 集合或 URL
等等 方法很多,不詳細(xì)列出了。

具體的使用或者深入的挖掘希望各位自己去探索了

AspNet技術(shù)ASP.NET 2.0 中Forms安全認(rèn)證,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 布拖县| 措勤县| 巴彦县| 绵竹市| 从化市| 金阳县| 澄迈县| 南昌市| 竹溪县| 浮梁县| 旬邑县| 汽车| 湘阴县| 屏东县| 大足县| 贵南县| 娱乐| 洪洞县| 湖州市| 孝昌县| 南川市| 宜宾县| 琼海市| 泸溪县| 和平县| 金华市| 定西市| 荥阳市| 台北县| 雷山县| 克什克腾旗| 福海县| 资源县| 志丹县| 伊通| 疏勒县| 剑川县| 嘉义市| 鲁甸县| 马边| 西乡县|