国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

ASP.Net:基于窗體的身份驗證
2007-12-11   

基于窗體的驗證是最為普遍的一種驗證,使用這種驗證方式可以很方便靈活地應用到應用程序中。窗體驗證方式對基于用戶的驗證授權提供了很好的支持,可以通過一個登錄頁面驗證用戶的身份,將此用戶的身份發回到客戶端的Cookie,之后此用戶再訪問這個web應用就會連同這個身份Cookie一起發送到服務端。服務端上的授權設置就可以根據不同目錄對不同用戶的訪問授權進行控制了。

要采用窗體驗證,先要在應用程序根目錄中的Web.config中做相應的設置:

<authentication mode="forms">
<forms name=".ASPXAUTH " loginUrl="/Login.aspx" timeout="30" path= "/">
</forms>
</authentication>

其中<authentication mode= "Forms"> 表示本應用程序采用Forms驗證方式。

(1)<Forms>標簽中的name表示指定要用于身份驗證的 HTTP Cookie。默認情況下,name 的值是 .ASPXAUTH。采用此種方式驗證用戶后,以此用戶的信息建立一個FormsAuthenticationTicket類型的身份驗證票,再加密序列化為一個字符串,最后將這個字符串寫到客戶端的name指定名字的Cookie中。一旦這個Cookie寫到客戶端后,此用戶再次訪問這個web應用時會將連同Cookie一起發送到服務端,服務端將會知道此用戶是已經驗證過的。

再看一下身份驗證票都包含哪些信息呢,我們看一下FormsAuthenticationTicket類:

CookiePath: 返回發出 Cookie 的路徑。注意,窗體的路徑設置為 /。由于窗體區分大小寫,這是為了防止站點中的 URL 的大小寫不一致而采取的一種保護措施。這在刷新 Cookie 時使用。
Expiration: 獲取 Cookie 過期的日期/時間。
IsPersistent: 如果已發出持久的 Cookie,則返回 true。否則,身份驗證 Cookie 將限制在瀏覽器生命周期范圍內。
IssueDate: 獲取最初發出 Cookie 的日期/時間。
Name: 獲取與身份驗證 Cookie 關聯的用戶名。
UserData :獲取存儲在 Cookie 中的應用程序定義字符串。
Version: 返回字節版本號供將來使用。

(2) <Forms>標簽中的loginUrl指定如果沒有找到任何有效的身份驗證Cookie,為登錄將請求重定向到的 URL。默認值為 Login.aspx。loginUrl指定的頁面就是用來驗證用戶身份的,一般此頁面提供用戶輸入用戶名和密碼,用戶提交后由程序來根據自己的需要來驗證用戶的合法性(大多情況是將用戶輸入信息同數據庫中的用戶表進行比較),如果驗證用戶有效,則生成同此用戶對應的身份驗證票,寫到客戶端的Cookie,最后將瀏覽器重定向到用戶初試請求的頁面,一般是用FormsAuthentication.RedirectFromLoginPage 方法來完成生成身份驗證票,寫回客戶端,瀏覽器重定向等一系列的動作。RedirectFromLoginPage 方法含有3個參數,函數定義如下:

public static void RedirectFromLoginPage( string userName, bool createPersistentCookie, string strCookiePath )其中:

userName: 就是此用戶的標示,用來標志此用戶的唯一標示,不一定要映射到用戶賬戶名稱;
createPersistentCookie: 標示是否發出持久的 Cookie。若不是持久Cookie,Cookie的有效期Expiration屬性有當前時間加上web.config中timeout的時間,每次請求頁面時,在驗證身份過程中,會判斷是否過了有效期的一半,要是的話更新一次cookie的有效期;若是持久cookie,Expiration屬性無意義,這時身份驗證票的有效期有cookie的Expires決定,RedirectFromLoginPage方法給Expires屬性設定的是50年有效期;
strCookiePath: 標示將生成的Cookie的寫到客戶端的路徑,身份驗證票中保存這個路徑是在刷新身份驗證票Cookie時使用(這也是生成Cookie的Path),若沒有strCookiePath 參數,則使用web.config中 path屬性的設置。

這里可以看到,此方法參數只有三個,而身份驗證票的屬性有七個,不足的四個參數是這么來的:
IssueDate: Cookie發出時間由當前時間得出;
Expiration:過期時間由當前時間和下面要說的<Forms>標簽中timeout參數算出。此參數對非持久性cookie有意義;
UserData: 這個屬性可以用應用程序寫入一些用戶定義的數據,此方法沒有用到這個屬性,只是簡單的將此屬性置為空字符串,請注意此屬性,在后面我們將要使用到這個屬性;
Version: 版本號由系統自動提供。
RedirectFromLoginPage方法生成生成身份驗證票后,會調用FormsAuthentication.Encrypt 方法,將身份驗證票加密為字符串,這個字符串將會是以.ASPXAUTH為名字的一個Cookie的值。這個Cookie的其它屬性的生成:Domain,Path屬性為確省值,Expires視createPersistentCookie參數而定,若是持久cookie,Expires設為50年以后過期;若是非持久cookie,Expires屬性不設置。

生成身份驗證Cookie后,將此Cookie加入到Response.Cookies中,等待發送到客戶端。最后RedirectFromLoginPage方法調用FormsAuthentication.GetRedirectUrl 方法獲取到用戶原先請求的頁面,重定向到這個頁面。

(3) <Forms>標簽中的timeout和path,是提供了身份驗證票寫入到Cookie過期時間和默認路徑。

經過上面的幾步,就完成了基于窗體身份驗證的過程。基于窗體的身份驗證使用的時是非常靈活的 ,在實際應用中可以根據用戶身份進行授權管理,包括基于角色的用戶權限管理等。下面一節中,我們來介紹基于Windows的身份驗證。

下面這個實例演示了如何利用窗體驗證來實現ASP.NET的安全控制的。實例是在我們前面已經建立好的MyFirst應用程序中完成的,該Web應用程序包含兩個Web窗體,一個是index.aspx,代表默認主頁,一個是Login.aspx,代表用戶登錄系統頁面。

首先是Web.config配置文件,如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="vb" debug="true" />
<customErrors mode="RemoteOnly" />
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="Login.aspx" timeout="30"></forms>
</authentication>
<authorization>
<deny users="admin2" />
<deny users="?" />
</authorization>
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
</configuration>
Index.aspx的HTML代碼如下:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="MyFirst.WebForm2"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>基于Web窗體的身份驗證實例</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋體">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 72px" runat="server"
Text="刪除Cookies"></asp:Button></FONT></form>
</body>
</HTML>


熱詞搜索:

上一篇:圖形密碼優勢明顯 將取代文本密碼驗證身份
下一篇:SQLServer2000身份驗證與安全控制(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
欧美理论电影网| 国模精品一区二区三区| 亚洲午夜精品| 亚洲欧美另类在线| 欧美一级日韩一级| 美女主播精品视频一二三四| 欧美高清视频一二三区| 欧美日韩卡一卡二| 国内精品视频一区| 日韩视频在线观看免费| 欧美专区在线| 欧美日韩综合另类| 韩国一区二区在线观看| 99视频精品| 久久婷婷综合激情| 国产精品永久免费观看| 一本久道久久久| 麻豆精品在线视频| 国产亚洲人成a一在线v站| 亚洲天堂网在线观看| 久久综合九色欧美综合狠狠| 欧美午夜精品| 亚洲免费av观看| 免费欧美视频| 国产综合色在线视频区| 国产精品卡一卡二卡三| 亚洲日本va午夜在线电影| 久久久最新网址| 国产亚洲欧美日韩日本| 亚洲一区自拍| 欧美系列精品| 亚洲每日在线| 欧美精品在线免费播放| 亚洲日本中文| 欧美人牲a欧美精品| 亚洲韩国一区二区三区| 老司机67194精品线观看| 国模吧视频一区| 久久午夜激情| 亚洲高清视频的网址| 久久久国际精品| 精品成人久久| 欧美激情导航| 一区二区三区高清| 国产精品久久999| 亚洲欧美日韩国产综合在线| 国产精品手机在线| 久久国产66| 亚洲精品看片| 国产精品普通话对白| 久久疯狂做爰流白浆xx| 在线日韩中文| 牛牛国产精品| 亚洲午夜黄色| 国产真实久久| 欧美不卡一卡二卡免费版| 亚洲精品男同| 国产欧美一区二区精品性色| 久久gogo国模裸体人体| 91久久国产精品91久久性色| 欧美日韩国产在线观看| 欧美一级艳片视频免费观看| 在线免费日韩片| 国产精品久久中文| 猫咪成人在线观看| 亚洲小视频在线| 136国产福利精品导航网址| 欧美午夜在线视频| 美女91精品| 亚洲男女自偷自拍| 亚洲第一主播视频| 国产精品久久久久久久久久尿| 久久精品国产视频| 亚洲美女av在线播放| 国产一区91| 国产精品久久久久久久久免费樱桃 | 老司机午夜精品视频| 亚洲免费成人av电影| 国产精品一区免费视频| 欧美大香线蕉线伊人久久国产精品| 午夜精品成人在线| 亚洲精品美女| 亚洲第一成人在线| 国产日韩欧美综合一区| 欧美日韩在线三区| 欧美xart系列高清| 久久久亚洲综合| 欧美在线影院| 亚洲免费综合| 亚洲一区二区精品在线观看| 亚洲激情在线激情| 亚洲第一黄网| 在线欧美小视频| 韩国女主播一区二区三区| 国产精品久久久久一区二区三区共| 欧美极品欧美精品欧美视频| 久久免费黄色| 久久资源在线| 免费不卡中文字幕视频| 久久久综合网站| 久久综合久久久| 久久综合久久88| 老司机免费视频一区二区| 欧美日韩精品福利| 亚洲国产视频一区| 亚洲高清视频在线观看| 亚洲承认在线| 亚洲人体影院| 亚洲精品视频啊美女在线直播| 激情成人av| 在线日本成人| 亚洲伦理在线免费看| 99国产一区二区三精品乱码| 夜夜爽www精品| 中文一区二区| 久久精品亚洲乱码伦伦中文 | 欧美丝袜一区二区| 欧美日韩精品免费观看视频完整 | 欧美日韩精品一本二本三本| 欧美福利电影在线观看| 男男成人高潮片免费网站| 欧美激情成人在线视频| 欧美午夜精品理论片a级按摩| 国产精品黄视频| 国产综合色精品一区二区三区| 国产日韩欧美电影在线观看| 黄色成人免费网站| 亚洲欧洲中文日韩久久av乱码| aa级大片欧美| 久久久国产精品一区| 欧美成人免费网| 国产精品一区二区久久精品| 精品999在线播放| 亚洲啪啪91| 欧美在线三级| 欧美人在线视频| 国产一区二区在线免费观看| 亚洲人成人77777线观看| 亚洲欧美国产精品va在线观看| 久久久久九九视频| 欧美日本中文字幕| 黑人操亚洲美女惩罚| 99国产成+人+综合+亚洲欧美| 亚洲国产精品一区二区第一页| 亚洲午夜精品17c| 欧美激情一区二区三区在线| 国产欧美一区二区精品仙草咪 | 国产欧美日韩一区| 91久久中文字幕| 午夜亚洲一区| 欧美日韩不卡| 亚洲国产国产亚洲一二三| 午夜精品福利一区二区蜜股av| 欧美大片网址| 亚洲成色www久久网站| 亚洲一区二区三区精品在线| 欧美成人自拍| 永久免费视频成人| 久久国产毛片| 国产一区二区观看| 欧美一区二区在线观看| 欧美日韩一视频区二区| 亚洲国产女人aaa毛片在线| 久久久亚洲高清| 韩国女主播一区二区三区| 欧美一区二区在线视频| 国产精品美女午夜av| 在线视频欧美日韩精品| 欧美伦理在线观看| 亚洲剧情一区二区| 欧美国产日韩一区二区| 精品999成人| 久久久www成人免费毛片麻豆| 国产精品专区h在线观看| 亚洲综合大片69999| 国产精品xxxav免费视频| av不卡在线观看| 国产精品第一区| 香蕉久久精品日日躁夜夜躁| 国产精品久久久久一区二区| 亚洲一区二区三区视频播放| 欧美性猛交xxxx乱大交退制版| 亚洲精品一区在线| 欧美午夜欧美| 香港久久久电影| 一区二区在线视频播放| 牛牛国产精品| 亚洲午夜小视频| 国产亚洲一区二区三区在线播放| 欧美一区二区三区视频| 黄色成人免费观看| 欧美激情a∨在线视频播放| 一区二区日韩| 国产亚洲成av人在线观看导航| 久久久久久精| 宅男在线国产精品| 国产一区深夜福利| 欧美精品在线一区二区三区| 亚洲综合国产| 一本一本大道香蕉久在线精品|