当前位置: 代码迷 >> 综合 >> Silverlight WCF RIA服务(三十三)身份验证、角色、个性化 4
  详细解决方案

Silverlight WCF RIA服务(三十三)身份验证、角色、个性化 4

热度:59   发布时间:2024-01-11 14:08:04.0

如何:在RIA Services中允许个性化功能
使用个性化功能,我们可以为用户检索和保存属性。WCF RIA Services中的个性化功能建立在ASP.NET的个性化框架上。
我们只能在用户验证后检索或保存个性化属性。

配置服务端项目
1. 在服务端项目中,打开Web.config文件。
2. 在段内,添加 元素。
3. 在 元素内,添加个性化属性。下面示例如何创建个性化以及定义一个名为FriendlyName的属性。
 

?
1
2
3
4
5
6
7
8
9
10
<SYSTEM.WEB>
  <AUTHENTICATION mode="Forms"></AUTHENTICATION>
  <PROFILE enabled="true">
    <PROPERTIES>
      <ADD name="FriendlyName" />
    </PROPERTIES>
  </PROFILE>
</SYSTEM.WEB>


4. 为验证服务打开包含User类的文件。
5. 在User类中,添加我们已在Web.config文件中添加过的个性化属性。
 

?
1
2
3
4
5
6
public partial class User : UserBase
{
    public string FriendlyName { get; set; }
}



从客户端访问个性化属性
1. 在Silverlight客户端项目中,打开后台代码页面。
2. 在后台代码页面中,设置或检索当前WebContext实例的User对象上的个性化属性。
 

?
1
2
3
WebContext.Current.User.FriendlyName = "Mike";


3. 如果想让WebContext对象在XAML中可用,那么在创建RootVisual之前,在Application.Startup事件中把当前WebContext实例添加到应用程序资源中。
 

?
1
2
3
4
5
6
7
private void Application_Startup(object sender, StartupEventArgs e)
{
    this.Resources.Add("WebContext", WebContext.Current);
    this.RootVisual = new MainPage();
}


通过声明性语法,我们也可以检索个性化属性。示例如下:
 

?
1
2
3
4
<TEXTBLOCK Text="{Binding Source={StaticResource WebContext},Path=User.FriendlyName}">
</TEXTBLOCK>
  相关解决方案