国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET Whidbey中personalization和membership的一些特征

2024-07-10 12:57:38
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

在asp.net whidbey中,一個基本的目標是,在開發應用程序時,減少開發時間和代碼量。為了達到這一目的,asp.net whidbey提供了一系列的新特征,例如無需代碼的數據綁定,新的服務器端控件,尤其是,在這篇文章中要重點討論的個人化(personalization)和成員角色(membership),來節省你的時間。

伴隨著個人化和成員角色這兩個新特征,第一步是要配置你用來存儲個人化(personalization)和成員角色(membership)數據的提供者(provider)。雖然你可以自己創建access或sql server數據庫,手動添加必要的配置元素,更簡單的方法是使用asp.net web site administration tool,如圖一。


圖一

請注意,要成功的配置一個應用程序,你必須使用一個具有管理員權限的賬號來登錄。



要創建一個access的.mdb文件來儲存personalization的數據,你需要打開asp.net web site administration tool。在一個叫data的文件夾下,會自動創建一個aspnetdb.mdb的文件。


圖二

要配置membership的provider,你需要使用asp.net web site administration tool的security標簽。最簡單的方法是選擇使用向導,如圖三。


圖三

在此刻,membership的數據庫會被創建,必須的配置元素也會被加入到web.config文件中。你需要做的,只是把所有用戶加入到數據庫,設置限制的頁,以及創建一個login頁面。

很重要的一點是,你可以注意到,為personalization和membership創建的數據庫是相同的,所以你可以使用同樣的provider。

除了內嵌的access和sql server的providers,你可以創建自己定制的providers,然后使用這些providers來配置應用程序。也就是說,你如果有了一個以前的數據庫,還是可以使用membership服務。



上面的都是理論方面的,接著我們來看一下實例。我會為各位讀者展示使用access provider來配置personalization和membership,在membership數據庫中添加一個用戶,添加personalization的屬性,在一個頁面中使用這些屬性,分別是匿名用戶和已登錄的用戶。

首先要創建一個web站點,然后點擊solution explorer窗口下的web site administration tool按鈕。(見圖二)

接著,點security標簽,選擇security setup wizard單選鈕,并點next。第一步是很簡單的信息,所以讀一下,就可以選next。第二步,選擇from the internet然后點next。"from the internet"是使用asp.net窗體驗證來配置應用程序,"from a local area network"使用windows驗證來配置應用程序。第三步,點next來使用web site administration tool已經自動創建的aspnetdb.mdb文件。接著點next跳過第四步。在第五步,因為有測試的目的,至少要加上一個用戶。第六步是創建訪問規則。最后,按finish退出向導。數據庫已經建立,web.config文件也被自動創建,加入了web站點,里面包含了各種元素,文件如下:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<connectionstrings>

<add name="webadminconnection631974613823397072"

connectionstring=

"c:/inetpub/wwwroot/aspnetpro_pm/data/aspnetdb.mdb"

/>

</connectionstrings>

<system.web>

<membership defaultprovider="aspnetdb">

<providers>

<add name="aspnetdb"

type="system.web.security.accessmembershipprovider,

system.web, version=1.1.3300.0, culture=neutral,

publickeytoken=b03f5f7f11d50a3a"

connectionstringname=

"webadminconnection631974613823397072"

applicationname="/aspnetpro_pm"

enablepasswordretrieval="true"

enablepasswordreset="true"

requiresquestionandanswer="true"

passwordformat="encrypted" />

</providers>

</membership>

<rolemanager defaultprovider="aspnetdb">

<providers>

<add name="aspnetdb"

type="system.web.security.accessroleprovider,

system.web, version=1.1.3300.0, culture=neutral,

publickeytoken=b03f5f7f11d50a3a"

connectionstringname=

"webadminconnection631974613823397072"

applicationname="/aspnetpro_pm" />

</providers>

</rolemanager>

<authentication mode="forms" />

</system.web>

</configuration>

如果要允許匿名用戶訪問你的站點,<anonymousidentification>元素是必需的。personalization部分包含兩個屬性,第一個屬性,theme,并不指定一個類型,所以可以當作一個字符串對待。第二個屬性,favoritecolors,指定了stringcollection類作為它的類型。在這個屬性中,如果想要存儲不兼容stringcollection類的數據,都會拋出異常。

<anonymousidentification enabled="true"/>

<personalization>

<profile>

<property name="theme" allowanonymous="true" />

<property name="favoritecolors"

type=

"system.collections.specialized.stringcollection"

allowanonymous="true"

serializeas="xml" />

</profile>

</personalization>



現在,我們了解了配置personalization和定義一個provider,現在是時候研究如何定義構成用戶profile的value集了。你需要為你想存儲的每個profile值添加一個<property>條目。事實上,你可以存儲任何種類的對象,簡單類型,字符串,布爾類型,或是復雜一點的,比如collections,甚至是自定義的類型。

<profile>

<property name="messagesperpage" type="int" />

</profile>

personalization系統支持更復雜的類型,例如collections。事實上,你可以存儲任何序列化的對象。其實定義一個復雜的屬性和定義一個簡單的屬性沒有太大的差別。接下來的代碼,包含了簡單和復雜的屬性的定義。

<personalization enabled="true" defaultprovider="access">

<providers>

<add name="access" type="... " connectionname="..." />

<add name="sql" type="... " connectionname="..." />

</providers>

<profile>

<property

name="emailaddresses"

type="system.collection.specialized.stringcollection"

serializeas="xml"

allowanonymous="false"

provider="sql"/>

<property name="messagesperpage" type="int" defaultvalue="25" />

</profile>

</personalization>

定義好了用戶的profile后,就可以開始進行編碼。page類包括一個profile屬性,也是httppersonalizationbase的子類。它有如下的成員列表:


圖四



在membership特征中,asp.net whidbey提供了很多的安全控件,下面是一個列表:

控件
功能

login
為站點定制了所有的登錄功能,不需要任何代碼

loginview
可以選擇幾種不同的模板

passwordrecovery
“忘記密碼”的控件,用選擇問題和答案來驗證用戶身份

loginstatus
顯示用戶登錄的狀態

loginname
能將登錄的用戶顯示到頁面上


我們舉passwordrecovery控件為例:在頁面添加一個passwordrecovery控件,html代碼如下:

<form runat="server">

<asp:passwordrecovery id="passwordrecovery1" runat="server" font-

names="verdana" font-size="10pt" bordercolor="#999999"

borderwidth="1px" borderstyle="solid" backcolor="#ffffcc"

visible=true>

<titletextstyle font-bold="true" forecolor="#ffffff"

backcolor="#333399">

</titletextstyle>

</asp:passwordrecovery>

</form

為了能實現這個功能,我們需要手動在web.config中添加以下代碼,指定smtp服務器,使之能發送email給用戶。

<smtpmail

servername="localhost">

</smtpmail>


圖五



我們可以看出,新一代的asp.net whidbey,控件已經做的非常完備,大大方便了程序員的開發效率,需要編寫的代碼越來越少了,讓我們拭目以待吧!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永嘉县| 东阿县| 米脂县| 北流市| 靖江市| 尖扎县| 石屏县| 余江县| 德安县| 潼南县| 承德县| 永春县| 云梦县| 彝良县| 大连市| 丰宁| 漾濞| 玛纳斯县| 板桥市| 北票市| 雷波县| 北川| 桦川县| 万山特区| 琼中| 竹北市| 东乌| 平顺县| 井冈山市| 安仁县| 安岳县| 页游| 灵武市| 万年县| 固始县| 宁德市| 图木舒克市| 尤溪县| 临夏县| 祁门县| 洮南市|