人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

以前搜集的一些資料---ADSI技術(shù),運用AUO(Active User Object)取代Session對象

以前搜集的一些資料---ADSI技術(shù),運用AUO(Active User Object)取代Session對象

更新時間:2021-06-04 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

使用AUO(Active User Object)來維護用戶信息
如果你要是對其中的一些技術(shù)術(shù)語不明白的話,
請參考我在前面發(fā)過的有關(guān)ADSI的文章。
現(xiàn)在在進行網(wǎng)站編程的時,要保存用戶信息的時候經(jīng)常使用的
技術(shù)是:
1。使用Session對象來保存用戶信息,這種方式很常見,它允許
你在你的程序的任何一個位置添加一個Session變量,它還不對你
申明的變量進行類型檢查,它的缺點很明顯,一是它的隨意性讓
你很不方便管理你的程序結(jié)構(gòu),二是它的對數(shù)據(jù)類型的不約束性
使得你很難找到程序中的BUG,這樣當你的程序出現(xiàn)問題的時候
你不得不在整個程序中檢查所有的Session變量。
Session變量的移植性和容錯性是它最頭疼的地方。
2。使用隱藏的Form元素來傳遞變量。但是由于這種方式要求你
使用明文來傳遞你的變量,當對變量的安全要求比較嚴格時,
又是一個很頭疼的問題。
現(xiàn)在我們討論一個新的用來傳遞變量的技術(shù),就是AUO對象。
這種很不錯的動態(tài)數(shù)據(jù)服務器能夠使用Site Server中的
Membership Server來實現(xiàn)。

對Session數(shù)據(jù)使用AUO
要使用AUO,你必須先定義好你的Membership Server并且指派一個網(wǎng)站。
一旦你設置好這些配置,我們就可以配置Membership Directory和AUO.

配置AUO
配置過程主要分下面四個步驟:
1。定義你需要的Session State屬性
2。新建或則選擇一個session state數(shù)據(jù)的類
3。為動態(tài)數(shù)據(jù)建立一個容器(container)
4。配置secondary AUO Provider

在面向?qū)ο蟮木幊碳夹g(shù)中,屬性被認為是一個類中的一個成員。
你必須為每個數(shù)據(jù)類型關(guān)聯(lián)一個它的屬性。
舉例來說,如果想要實現(xiàn)一個在線購書系統(tǒng),我們需要定義一個購物籃類,
它應該包括的屬性有籃內(nèi)的貨物數(shù)目,它包含了一個數(shù)字(numeric)屬性
要定義這個屬性,使用Site Server的MMC,在成員目錄(Membership Directory)中
增加所有的屬性。
定義好屬性后,現(xiàn)在你需要做的是給這些屬性關(guān)聯(lián)一個類,
一個類的實現(xiàn)稱為一個對象,每個對象對自己的屬性都可以擁有不同的數(shù)值。
如果你已經(jīng)有了一個Session State類, 你要做的就是給這個類添加屬性而已。
否則你需要使用Membership Directory Manager新建一個新Session State的類
在下面的例子中使用到的一個類為SessionStateClass.
現(xiàn)在你需要建立一個secondary AUO provider, 它是用來給主AUO provider提供輔助的
數(shù)據(jù)信息的.這可以是一個兼容ODBC的數(shù)據(jù)庫,或則是一個其它的目錄服務或則是一個其它的
Membership Directory容器.在例子中,輔助的數(shù)據(jù)為Session State的Membership Directory容器信息。

這樣,新建一個在Membership Directory下用來保存動態(tài)session信息的容器的
root和name為它的ou=SessionStateData. 這個secondary AUO provider將使用
SessionStateData容器來儲存數(shù)據(jù).使用MMC給SessionState建立一個secondary AUO provider
有如下屬性:
ADS 路徑: computername:LDAPport/o=yourDirectory/ou=SessionStateData
Schema 路徑: computername:LDAPport/o=yourDirectory/ou=Admin/cn=Schema/cn=SessionStateClass
現(xiàn)在你已經(jīng)準備好使用AUO來保存session信息的一切手續(xù)了。
雖然看上去很混亂(說真的,我翻譯到這里是比較的混亂), 你剛才所做的在Membership Directory的scope中
新建和實現(xiàn)一個對象:定義一個類(class), 該類有用來描述和說明一個session state的屬性(或則說是成員)
而在實現(xiàn)的過程中,每個用戶(就是客戶端的瀏覽器)將得到這個類的一個實現(xiàn)(或則說是對象).
好了,現(xiàn)在讓我們來看看AUO到底是怎么工作的把。
在ASP中使用下面的語句調(diào)用一個AUO provider
Set objUser = Server.CreateObject("Membership.UserObjects")
你能夠通過下面的語句調(diào)用獲得這個對象的任何靜態(tài)屬性。
Response.Write "Your login: " + objUser.cn
要設置動態(tài)信息,你需要先確保該對象確實存在。
因為它是一個動態(tài)對象(dynamic object),所以你不能夠把它當成一個
自動(automatically)對象。
If Not IsArray(objUser("SessionState").objectClass) Then
 objUser("SessionState").objectClass =
 Array("SessionState", "dynamicObject")
End If
接下來,設置這個AUO對象的TTL(生存期)數(shù)值. 當該時間到后,這個對象將終止和消失。
這需要調(diào)用SetInfo方法。
objUser("SessionState").entryTTL = 900' 默認單位為秒
objUser("SessionState").SetInfo
最后,我們來設置該對象的數(shù)值(講簡單點,就是終于可以來實現(xiàn)Session的功能了)
就是給屬性numItems賦值。注意,在schema中這個屬性必須要存在,而且數(shù)據(jù)類型必須要匹配。
objUser( "SessionState" ).numItems = 3
objUser( "SessionState" ).SetInfo
如果使用一個不存在的屬性或者使用了錯誤的數(shù)據(jù)類型,你都將得到出錯信息的。

訪問AUO Session State
要訪問你剛才賦值的屬性,只要指定了用戶對象,和secondary AUO的name以及屬性名即可。
Response.Write objUser("SessionState").numItems
注意的是,如果你設置的TTL到期后,你使用以上語句將得不到任何返回值。

比較一下Session和AUO Objects的不同之處
你也許已經(jīng)注意到,在你使用AUO的屬性前你必須先要定義這些屬性,
這是一個相對與Session對象而言一個很大的優(yōu)勢,這將迫使個人開發(fā)者在設計變量,
對外接口上發(fā)更多的時間(也就是說再也不能夠象使用Session一樣,隨便使用任何名字了)。
并且把變量的聲明都集中在一起,這對于多個開發(fā)者同時開發(fā)一個項目而言是個很大的進步。
同時它也提供了更多的處理數(shù)據(jù)的可能。你能夠使用ADSI來訪問保存Session State的組(group)
并且它能夠很方便的傳遞所有的用戶信息,這包括:人們在你的在線購物系統(tǒng)中買了什么東西,
,他們在你的在線購物系統(tǒng)中不滿意什么,在什么時間他們買了什么東西等等。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 宾阳县| 阿克| 新绛县| 昌黎县| 信阳市| 武宣县| 浠水县| 遂川县| 博野县| 望江县| 克拉玛依市| 肇东市| 白山市| 独山县| 西峡县| 三河市| 习水县| 翼城县| 台山市| 清涧县| 济阳县| 泸西县| 巴林左旗| 双鸭山市| 易门县| 鹿泉市| 高邮市| 高青县| 山西省| 衡阳县| 辰溪县| 铜梁县| 雷山县| 仁寿县| 汉寿县| 博兴县| 余姚市| 绥江县| 舟山市| 永平县| 龙胜|