ウェブサイトは、ユーザーが繰り返し訪問するように設計されています。パーソナライゼーションにより、Web サイトはユーザー ID やその他の情報の詳細を記憶できるようになり、各ユーザーに個人的なコンテキストが提供されます。
ASP.NET は、特定の顧客の好みや好みに合わせて Web サイトをパーソナライズするサービスを提供します。
ASP.NET 個人用設定サービスは、ユーザーのプロファイルに基づいています。ユーザー プロファイルは、Web サイトがユーザーに必要とする情報を定義します。たとえば、名前、年齢、住所、生年月日、携帯電話番号などです。
この情報はアプリケーションの web.config ファイルで定義され、ASP.NET ランタイムがそれを読み取って使用します。この作業はパーソナライゼーションプロバイダーによって行われます。
ユーザー データに含まれるユーザー プロファイルは、ASP.NET によって作成された既定のデータベースに保存されます。独自のデータベースを作成して署名ファイルを保存できます。プロファイル データ定義は、構成ファイル web.config に保存されます。
アプリケーションに名前、住所、生年月日などのユーザーの詳細を記憶させるサンプル Web サイトを作成してみましょう。 web.config ファイル内の要素を使用してプロファイルの詳細を追加します。
<configuration><system.web><profile> <properties> <add name="Name" type ="String"/> <add name="Birthday" type ="System.DateTime"/> <group name="Address" "> <add name="Street"/> <add name="City"/> <add name="State"/> <add name="Zipcode"/> </group> </properties></profile></system.web></configuration>
プロファイルが web.config ファイルで定義されている場合、そのプロファイルは、現在の HttpContext にある Profile 属性を通じて利用可能になり、ページを通じて利用可能になります。
機能ファイルで定義されたユーザー入力を取得するためのテキスト ボックスと、データを送信するためのボタンを追加します。
Page_load を更新して機能ファイル情報を表示します。
System の使用;System.Data の使用;System.Configuration の使用;System.Web の使用;System.Web.Security の使用;System.Web.UI の使用;System.Web.UI.WebControls の使用;System.Web.UI.WebControls の使用。 WebParts;System.Web.UI.HtmlControls の使用;パブリック部分クラス _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { this.txtname.Text = pc.Name = pc.Address.Street; ; this.txtcity.Text = pc.Address.City; this.txtstate.Text = pc.Address.State; this.txtzip.Text = pc.Address.Zipcode; this.Calendar1.SelectedDate = pc.Birthday;
次の送信ボタンのハンドルを記述し、ユーザー データを機能ファイルに保存します。
protected void btnsubmit_Click(object sender, EventArgs e){ ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { pc.Name = this.txtname.Text; .txtaddr.Text; pc.Address.City = this.txtcity.Text; this.txtstate.Text; pc.Address.Zipcode = this.txtzip.Text; pc.Birthday = this.Calendar1.SelectedDate; }}
初めてページを実行するとき、ユーザーは情報を入力する必要があります。ただし、次回からはユーザーの詳細が自動的にロードされます。
すでに使用した name 属性と type 属性に加えて、要素には他の属性があります。次の表は、これらのプロパティの一部を示しています。
財産 | 説明する |
---|---|
名前 | プロパティの名前。 |
タイプ | 型のデフォルトは文字列ですが、任意の完全なクラス名をデータ型として使用できます。 |
シリアライズAS | この値をシリアル化するときに使用する形式。 |
読み取り専用 | 読み取り専用の署名ファイルの値は変更できません。このプロパティのデフォルトは false です。 |
デフォルト値 | 署名ファイルが存在しない場合、または情報がない場合に使用されるデフォルト値。 |
匿名を許可する | この属性を匿名ファイルで使用できるかどうかを示すブール値。 |
プロバイダー | このプロパティの管理に使用するプロファイル プロバイダー。 |
匿名パーソナライゼーションを使用すると、ユーザーは自分自身を識別する前に Web サイトをパーソナライズできます。たとえば、Amazon.com では、ユーザーはログインする前にショッピング カートに商品を追加できます。この機能を有効にするには、web.config ファイルを次のように構成します。
<anonymousIdentification 有効 ="true" cookieName=".ASPXANONYMOUSUSER" cookieTimeout="120000" cookiePath="/" cookieRequiresSSL="false" cookieSlidingExpiration="true" cookieprotection="Encryption" Coolieless="UseDeviceProfile"/>