關(guān)于這三種驗(yàn)證方式的配置,推薦一篇文章://www.gxlcms.com/article/30510.htm
我這里詳解Forms驗(yàn)證方式,在ASP.NET項(xiàng)目中的實(shí)際應(yīng)用與深度理解。
對于ASP.NET驗(yàn)證機(jī)制在項(xiàng)目開發(fā)中運(yùn)用,會使項(xiàng)目非常方便快捷的實(shí)現(xiàn)頁面的訪問權(quán)限問題,而且省去了一些沒必要的安全問題。
對于ASP.NET提供的驗(yàn)證機(jī)制,要深度的理解后才能靈活的運(yùn)用。對于整個項(xiàng)目的訪問權(quán)限,有時候我們需要對部分頁面的訪問權(quán)限進(jìn)行限制,又不影響其他公共頁面的訪問。舉個實(shí)際項(xiàng)目的例子。
案例:有一個ASP.NET的項(xiàng)目,對整個項(xiàng)目訪問限制,不允許匿名用戶訪問,登錄頁面除外。
問題是,登錄頁面(假設(shè)是:Manager目錄下的Login.aspx文件)中應(yīng)用的Script的的一個文件(假設(shè)這個文件是:Script/jquery-1.7.1.min.js)
1.web.config配置文件
代碼如下:
<!--配置Forms身份認(rèn)證 不允許匿名用戶訪問,否則跳轉(zhuǎn)到/Manager/login.aspx 頁面 -->
<authentication mode="Forms">
<forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
現(xiàn)在我們可以理解為:當(dāng)用戶打開程序時,會自動轉(zhuǎn)到Manager/login.aspx頁面,但是這個頁面引用的jquery-1.7.1.min.js文件是不可用的。因?yàn)?,限制了所有的匿名用戶只能訪問Login.aspx頁面,只有當(dāng)注冊票據(jù)之后其它的頁面或文件才能正常訪問。所以當(dāng)匿名用戶需要有權(quán)限訪問jquery-1.7.1.min.js文件,就需要設(shè)置某個文件或者文件的訪問權(quán)限為所有用戶。
代碼如下:
<!--允許所有用戶訪問Script文件夾-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
path可以只想某個具體的文件,比如"Script/Script/jquery-1.7.1.min.js",這里設(shè)置“Script”文件夾表示,允許匿名用戶訪問“Script”文件夾下面的所以文件
代碼如下:
<!--
定義 ASP.NET身份驗(yàn)證機(jī)制
-->
<!--允許所有用戶訪問Script文件夾-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<customErrors mode="Off" defaultRedirect="../error.aspx"/><!--配置Forms身份認(rèn)證 不允許匿名用戶訪問,否則跳轉(zhuǎn)到/Manager/login.aspx 頁面 -->
<authentication mode="Forms">
<forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
2.登錄注冊票據(jù)當(dāng)?shù)卿涰撁娴卿浱峤徊⒌卿洺晒?,注冊票?jù),當(dāng)注冊票據(jù)之后,相當(dāng)于當(dāng)前用戶的身份已經(jīng)不是匿名用戶,沒有了訪問權(quán)限的限制。FormsAuthentication的命名空間是:using System.Web.Security;
FormsAuthentication.RedirectFromLoginPage(UserID, false); //頁面注冊 關(guān)鍵 UsersID表示登錄ID
3.撕毀票據(jù)(退出系統(tǒng))FormsAuthentication.SignOut(); //撕毀票據(jù) 退出登錄
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com