asp.net 身份驗(yàn)證機(jī)制實(shí)例代碼
更新時(shí)間:2012年06月06日 20:36:51 作者:
對于ASP.NET驗(yàn)證機(jī)制在項(xiàng)目開發(fā)中運(yùn)用,會(huì)使項(xiàng)目非常方便快捷的實(shí)現(xiàn)頁面的訪問權(quán)限問題,而且省去了一些沒必要的安全問題
ASP.NET提供了3種認(rèn)證方式:windows身份驗(yàn)證、Forms驗(yàn)證和Passport驗(yàn)證。
windows身份驗(yàn)證: IIS根據(jù)應(yīng)用程序的設(shè)置執(zhí)行身份驗(yàn)證。要使用這種驗(yàn)證方式,在IIS中必須禁用匿名訪問。
Forms驗(yàn)證:用Cookie來保存用戶憑證,并將 未經(jīng)身份驗(yàn)證的用戶重定向到自定義的登錄頁。
Passport驗(yàn)證:通過Microsoft的集中身份驗(yàn)證服務(wù)執(zhí)行的,他為成員站點(diǎn)提供單獨(dú)登錄和核心配置文件服務(wù)。
關(guān)于這三種驗(yàn)證方式的配置,推薦一篇文章:http://www.dbjr.com.cn/article/30510.htm
我這里詳解Forms驗(yàn)證方式,在ASP.NET項(xiàng)目中的實(shí)際應(yīng)用與深度理解。
對于ASP.NET驗(yàn)證機(jī)制在項(xiàng)目開發(fā)中運(yùn)用,會(huì)使項(xiàng)目非常方便快捷的實(shí)現(xiàn)頁面的訪問權(quán)限問題,而且省去了一些沒必要的安全問題。
對于ASP.NET提供的驗(yàn)證機(jī)制,要深度的理解后才能靈活的運(yùn)用。對于整個(gè)項(xiàng)目的訪問權(quán)限,有時(shí)候我們需要對部分頁面的訪問權(quán)限進(jìn)行限制,又不影響其他公共頁面的訪問。舉個(gè)實(shí)際項(xiàng)目的例子。
案例:有一個(gè)ASP.NET的項(xiàng)目,對整個(gè)項(xiàng)目訪問限制,不允許匿名用戶訪問,登錄頁面除外。
問題是,登錄頁面(假設(shè)是:Manager目錄下的Login.aspx文件)中應(yīng)用的Script的的一個(gè)文件(假設(shè)這個(gè)文件是: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)用戶打開程序時(shí),會(huì)自動(dòng)轉(zhuǎn)到Manager/login.aspx頁面,但是這個(gè)頁面引用的jquery-1.7.1.min.js文件是不可用的。因?yàn)?,限制了所有的匿名用戶只能訪問Login.aspx頁面,只有當(dāng)注冊票據(jù)之后其它的頁面或文件才能正常訪問。所以當(dāng)匿名用戶需要有權(quán)限訪問jquery-1.7.1.min.js文件,就需要設(shè)置某個(gè)文件或者文件的訪問權(quán)限為所有用戶。
<!--允許所有用戶訪問Script文件夾-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
path可以只想某個(gè)具體的文件,比如"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ù) 退出登錄
windows身份驗(yàn)證: IIS根據(jù)應(yīng)用程序的設(shè)置執(zhí)行身份驗(yàn)證。要使用這種驗(yàn)證方式,在IIS中必須禁用匿名訪問。
Forms驗(yàn)證:用Cookie來保存用戶憑證,并將 未經(jīng)身份驗(yàn)證的用戶重定向到自定義的登錄頁。
Passport驗(yàn)證:通過Microsoft的集中身份驗(yàn)證服務(wù)執(zhí)行的,他為成員站點(diǎn)提供單獨(dú)登錄和核心配置文件服務(wù)。
關(guān)于這三種驗(yàn)證方式的配置,推薦一篇文章:http://www.dbjr.com.cn/article/30510.htm
我這里詳解Forms驗(yàn)證方式,在ASP.NET項(xiàng)目中的實(shí)際應(yīng)用與深度理解。
對于ASP.NET驗(yàn)證機(jī)制在項(xiàng)目開發(fā)中運(yùn)用,會(huì)使項(xiàng)目非常方便快捷的實(shí)現(xiàn)頁面的訪問權(quán)限問題,而且省去了一些沒必要的安全問題。
對于ASP.NET提供的驗(yàn)證機(jī)制,要深度的理解后才能靈活的運(yùn)用。對于整個(gè)項(xiàng)目的訪問權(quán)限,有時(shí)候我們需要對部分頁面的訪問權(quán)限進(jìn)行限制,又不影響其他公共頁面的訪問。舉個(gè)實(shí)際項(xiàng)目的例子。
案例:有一個(gè)ASP.NET的項(xiàng)目,對整個(gè)項(xiàng)目訪問限制,不允許匿名用戶訪問,登錄頁面除外。
問題是,登錄頁面(假設(shè)是:Manager目錄下的Login.aspx文件)中應(yīng)用的Script的的一個(gè)文件(假設(shè)這個(gè)文件是:Script/jquery-1.7.1.min.js)
1.web.config配置文件
復(fù)制代碼 代碼如下:
<!--配置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)用戶打開程序時(shí),會(huì)自動(dòng)轉(zhuǎn)到Manager/login.aspx頁面,但是這個(gè)頁面引用的jquery-1.7.1.min.js文件是不可用的。因?yàn)?,限制了所有的匿名用戶只能訪問Login.aspx頁面,只有當(dāng)注冊票據(jù)之后其它的頁面或文件才能正常訪問。所以當(dāng)匿名用戶需要有權(quán)限訪問jquery-1.7.1.min.js文件,就需要設(shè)置某個(gè)文件或者文件的訪問權(quán)限為所有用戶。
復(fù)制代碼 代碼如下:
<!--允許所有用戶訪問Script文件夾-->
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
path可以只想某個(gè)具體的文件,比如"Script/Script/jquery-1.7.1.min.js",這里設(shè)置“Script”文件夾表示,允許匿名用戶訪問“Script”文件夾下面的所以文件
復(fù)制代碼 代碼如下:
<!--
定義 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ù) 退出登錄
您可能感興趣的文章:
- MVC使用Spring.Net應(yīng)用IOC(依賴倒置)學(xué)習(xí)筆記3
- Spring學(xué)習(xí)筆記1之IOC詳解盡量使用注解以及java代碼
- 深入理解Java的Spring框架中的IOC容器
- 淺析Java的Spring框架中IOC容器容器的應(yīng)用
- Spring MVC 中 短信驗(yàn)證碼功能的實(shí)現(xiàn)方法
- Spring框架生成圖片驗(yàn)證碼實(shí)例
- Spring學(xué)習(xí)筆記2之表單數(shù)據(jù)驗(yàn)證、文件上傳實(shí)例代碼
- php自動(dòng)注冊登錄驗(yàn)證機(jī)制實(shí)現(xiàn)代碼
- js 第二代身份證號(hào)碼的驗(yàn)證機(jī)制代碼
- 利用Spring IOC技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證機(jī)制
相關(guān)文章
Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作
眾所周知斷點(diǎn)對于Visual Studio調(diào)試過程是十分重要的,斷點(diǎn)的設(shè)置也是為了更好的進(jìn)行調(diào)試。下面這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作的相關(guān)資料,需要的朋友可以參考下2018-09-09asp.net中IDataParameter調(diào)用存儲(chǔ)過程的實(shí)現(xiàn)方法
這篇文章主要介紹了asp.net中IDataParameter調(diào)用存儲(chǔ)過程的實(shí)現(xiàn)方法,在asp.net數(shù)據(jù)庫程序設(shè)計(jì)中非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09.Net中實(shí)現(xiàn)無限分類的2個(gè)例子
這篇文章主要介紹了.Net中實(shí)現(xiàn)無限分類的2個(gè)例子,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02關(guān)于HttpHandler與HttpModule的理解和應(yīng)用方法
本篇文章小編將為大家介紹,關(guān)于HttpHandler與HttpModule的理解和應(yīng)用方法,有需要的朋友可以參考一下2013-04-04.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析
本篇文章介紹了,.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析。需要的朋友參考下2013-05-05asp.net Context.Handler 頁面間傳值方法
很有用的頁面間傳值方法(Context.Handler),使用說明2008-08-08