ProfileBase クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
プロファイルのプロパティ値と情報への型指定しないアクセスを提供します。
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- 継承
- 派生
例
次のコード例は、 型のプロパティと 型string
のプロパティを含むユーザー プロファイルをZipCode
指定する Web.config ファイルをRecentSearchList
StringCollection示しています。 現在HttpContextの の生成されたProfileプロパティには、指定されたプロパティごとに厳密に型指定されたアクセサーがあります。
<configuration>
<system.web>
<anonymousIdentification enabled="true" />
<profile enabled="true" defaultProvider="SqlProvider" >
<properties>
<add name="ZipCode" allowAnonymous="true" />
<add name="RecentSearchList"
type="System.Collections.Specialized.StringCollection"
serializeAs="Xml"
allowAnonymous="true" />
</properties>
</profile>
</system.web>
</configuration>
次の例は、ユーザー プロファイルに指定されたプロパティを読み取って設定する ZipCode
ASP.NET ページを示しています。 このコードを実行する前に、Web サイトの ASP.NET 構成設定でプロバイダーを既定値 AspNetSqlProvider
に設定します。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_PreRender()
{
if (Profile.ZipCode == null)
{
PersonalizePanel.Visible = false;
GetZipCodePanel.Visible = true;
}
else
{
ZipCodeLabel.Text = Profile.ZipCode;
// Get personalized information for zip code here.
PersonalizePanel.Visible = true;
GetZipCodePanel.Visible = false;
}
}
public void ChangeZipCode_OnClick(object sender, EventArgs args)
{
ZipCodeTextBox.Text = Profile.ZipCode;
Profile.ZipCode = null;
PersonalizePanel.Visible = false;
GetZipCodePanel.Visible = true;
}
public void EnterZipCode_OnClick(object sender, EventArgs args)
{
Profile.ZipCode = ZipCodeTextBox.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
<table border="1" cellpadding="2" cellspacing="2">
<tr>
<td>
<asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
<!-- Information for Zip Code here. -->
<br />
<asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
OnClick="ChangeZipCode_OnClick" />
</asp:Panel>
<asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
You can personalize this page by entering your Zip Code:
<asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
<asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
OnClick="EnterZipCode_OnClick" />
</asp:Panel>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Page_PreRender()
If Profile.ZipCode = Nothing Then
PersonalizePanel.Visible = False
GetZipCodePanel.Visible = True
Else
ZipCodeLabel.Text = Profile.ZipCode
' Get personalized information for zip code here.
PersonalizePanel.Visible = True
GetZipCodePanel.Visible = False
End If
End Sub
Public Sub ChangeZipCode_OnClick(sender As Object, args As EventArgs)
ZipCodeTextBox.Text = Profile.ZipCode
Profile.ZipCode = Nothing
PersonalizePanel.Visible = False
GetZipCodePanel.Visible = True
End Sub
Public Sub EnterZipCode_OnClick(sender As Object, args As EventArgs)
Profile.ZipCode = ZipCodeTextBox.Text
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
<table border="1" cellpadding="2" cellspacing="2">
<tr>
<td>
<asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
<!-- Information for Zip Code here. -->
<br />
<asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
OnClick="ChangeZipCode_OnClick" />
</asp:Panel>
<asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
You can personalize this page by entering your Zip Code:
<asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
<asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
OnClick="EnterZipCode_OnClick" />
</asp:Panel>
</td>
</tr>
</table>
</form>
</body>
</html>
次のコード例では、 クラスを継承してカスタム プロファイルを ProfileBase 作成するクラスを定義します。 カスタム プロファイルの種類は、アプリケーションの Web.config ファイルのプロファイル構成要素の属性で指定されますinherits
。
重要
この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスが含まれています。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。
using System;
using System.Web.Profile;
namespace Samples.AspNet.Profile
{
public class EmployeeProfile : ProfileBase
{
[SettingsAllowAnonymous(false)]
[ProfileProvider("EmployeeInfoProvider")]
public string Department
{
get { return base["EmployeeDepartment"].ToString(); }
set { base["EmployeeDepartment"] = value; }
}
[SettingsAllowAnonymous(false)]
[ProfileProvider("EmployeeInfoProvider")]
public EmployeeInfo Details
{
get { return (EmployeeInfo)base["EmployeeInfo"]; }
set { base["EmployeeInfo"] = value; }
}
}
public class EmployeeInfo
{
public string Name;
public string Address;
public string Phone;
public string EmergencyContactName;
public string EmergencyContactAddress;
public string EmergencyContactPhone;
}
}
Imports System.Web.Profile
Namespace Samples.AspNet.Profile
Public Class EmployeeProfile
Inherits ProfileBase
<SettingsAllowAnonymous(False)> _
<ProfileProvider("EmployeeInfoProvider")> _
Public Property Department As String
Get
Return MyBase.Item("EmployeeDepartment").ToString()
End Get
Set
MyBase.Item("EmployeeDepartment") = value
End Set
End Property
<SettingsAllowAnonymous(False)> _
<ProfileProvider("EmployeeInfoProvider")> _
Public Property Details As EmployeeInfo
Get
Return CType(MyBase.Item("EmployeeInfo"), EmployeeInfo)
End Get
Set
MyBase.Item("EmployeeInfo") = value
End Set
End Property
End Class
Public Class EmployeeInfo
Public Name As String
Public Address As String
Public Phone As String
Public EmergencyContactName As String
Public EmergencyContactAddress As String
Public EmergencyContactPhone As String
End Class
End Namespace
注釈
ASP.NET は、 クラスを ProfileBase 使用して、ユーザー プロファイルに使用されるクラスを作成します。 ユーザー プロファイルが有効になっているアプリケーションが開始されると、ASP.NET は クラスから継承する 型 ProfileCommon
の新しいクラスを ProfileBase 作成します。 厳密に型指定されたアクセサーは、プロファイル構成セクションで定義されている各プロパティの クラスに追加ProfileCommon
されます。 クラスのProfileCommon
厳密に型指定されたアクセサーは、それぞれ基本クラスの メソッドと SetPropertyValue メソッドをProfileBase呼び出GetPropertyValueして、プロファイル プロパティ値を取得および設定します。 クラスの ProfileCommon
インスタンスは、ASP.NET アプリケーションの プロパティの Profile 値として設定されます。
ASP.NET アプリケーションでユーザー プロファイルのインスタンスを作成するには、 メソッドを Create 使用することをお勧めします。
注意 (継承者)
抽象クラスを ProfileBase 継承し、プロファイル構成要素で指定されていないユーザー プロファイルのプロパティを定義するカスタム プロファイル 実装を作成できます。 次の例に示すように、プロファイル構成要素の属性を使用して inherits
、web.config ファイルでカスタム ユーザー プロファイル の種類を指定できます。 クラスの EmployeeProfile
コードは、このトピックの「例」セクションに含まれています。
<configuration>
<system.web>
<profile inherits="Samples.AspNet.Profile.EmployeeProfile"
defaultProvider="SqlProvider">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="SqlServices"
description="SQL Profile Provider for Sample"/>
<add
name="EmployeeInfoProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="SqlServices"
description="SQL Profile Provider for Employee Info"/>
</providers>
<properties>
<add name="GarmentSize" />
</properties>
</profile>
</system.web>
</configuration>
コンストラクター
ProfileBase() |
ProfileBase クラスのインスタンスを作成します。 |
プロパティ
Context |
関連付けられた設定コンテキストを取得します。 (継承元 SettingsBase) |
IsAnonymous |
ユーザー プロファイルが匿名ユーザーのものかどうかを示す値を取得します。 |
IsDirty |
いずれかのプロファイル プロパティが変更されているかどうかを示す値を取得します。 |
IsSynchronized |
オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。 (継承元 SettingsBase) |
Item[String] |
プロパティ名のインデックスによって指定されたプロパティ値を取得または設定します。 |
LastActivityDate |
プロファイルの読み込みまたは変更が行われた最新の日時を取得します。 |
LastUpdatedDate |
プロファイルが変更された最新の日時を取得します。 |
Properties |
プロファイル内の各プロパティに対する SettingsProperty オブジェクトから成るコレクションを取得します。 |
PropertyValues |
設定プロパティ値のコレクションを取得します。 (継承元 SettingsBase) |
Providers |
設定プロバイダーのコレクションを取得します。 (継承元 SettingsBase) |
UserName |
プロファイルに対するユーザー名を取得します。 |
メソッド
Create(String) |
指定されたユーザー名のプロファイルのインスタンスを作成するために、ASP.NET によって使用されます。 |
Create(String, Boolean) |
指定されたユーザー名のプロファイルのインスタンスを作成するために、ASP.NET によって使用されます。 ユーザーが認証済みであるか匿名であるかを示すパラメーターを取得します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetProfileGroup(String) |
指定されたグループ名のプロパティ グループを取得します。 |
GetPropertyValue(String) |
プロファイル プロパティの値を取得します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
SettingsBase オブジェクトによって使用される内部プロパティを初期化します。 (継承元 SettingsBase) |
Initialize(String, Boolean) |
現在のユーザーに関するプロファイルのプロパティ値と情報を初期化します。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Save() |
プロファイルのデータ ソースを、変更されたプロファイル プロパティ値で更新します。 |
SetPropertyValue(String, Object) |
プロファイル プロパティの値を設定します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET