方法: RIA Services でプロファイルを有効にする
ここでは、以前に認証を有効にした場合に WCF RIA サービス ソリューションでプロファイルを有効にする方法について説明します。プロファイルを使用すると、ユーザーのプロパティを取得して保存できます。RIA サービス のプロファイルは、ASP.NET のプロファイル フレームワークに基づいて作成されます。ASP.NET プロファイルの詳細については、「ASP.NET プロファイル プロパティの概要」を参照してください。
ユーザー プロファイルのプロパティは、ユーザーが認証されてからのみ取得または保存できます。サーバー プロジェクトとクライアント プロジェクトを認証用に構成する方法については、「方法: RIA Services で認証を有効にする」を参照してください。
サーバー プロジェクトを構成するには
サーバー プロジェクトで Web.config ファイルを開きます。
<system.web>
セクションに<profile>
要素を追加します。<profile>
要素にプロファイル プロパティを追加します。次の例は、プロファイルを有効にし、
FriendlyName
という名前のプロパティを定義する方法を示しています。<system.web> <authentication mode="Forms"></authentication> <profile enabled="true"> <properties> <add name="FriendlyName"/> </properties> </profile> </system.web>
認証サービスの
User
クラスを含むファイルを開きます。User
クラスで、Web.config ファイルに追加したすべてのプロファイル プロパティを追加します。次の例は、Web.config ファイルに追加したプロパティと一致する
FriendlyName
という名前のプロパティを追加する方法を示しています。Public Partial Class User Inherits UserBase Private _FriendlyName As String Public Property FriendlyName() As String Get Return _FriendlyName End Get Set(ByVal value As String) _FriendlyName = value End Set End Property End Class
public partial class User : UserBase { public string FriendlyName { get; set; } }
クライアント プロジェクトからプロファイル プロパティにアクセスするには
Silverlight クライアント プロジェクトで分離コード ページを開きます。
分離コード ページで、WebContext の現在のインスタンスの
User
オブジェクトのプロファイル プロパティを設定または取得します。次の例は、分離コード ファイルでプロファイル プロパティを設定する方法を示しています。
WebContext.Current.User.FriendlyName = "Mike"
WebContext.Current.User.FriendlyName = "Mike";
XAML で WebContext オブジェクトを使用できるようにする場合は、ルート visual を作成する前に、Application.Startup イベントのアプリケーション リソースに現在の WebContext インスタンスを追加します。
次の例は、アプリケーション リソースとして WebContext インスタンスを追加する方法を示しています。
Private Sub Application_Startup(ByVal o As Object, ByVal e As StartupEventArgs) Handles Me.Startup Me.Resources.Add("WebContext", WebContext.Current) Me.RootVisual = New MainPage() End Sub
private void Application_Startup(object sender, StartupEventArgs e) { this.Resources.Add("WebContext", WebContext.Current); this.RootVisual = new MainPage(); }
宣言構文を使用して、プロファイル プロパティを取得できます。次の例は、XAML でプロファイル プロパティを取得する方法を示しています。
<TextBlock Text={Binding Source={StaticResource WebContext}, Path=User.FriendlyName}"/>
参照
処理手順
チュートリアル: Silverlight ナビゲーション アプリケーションでの認証サービスの使用
チュートリアル: Silverlight ビジネス アプリケーションでの認証サービスの使用