【发布时间】:2011-05-31 09:32:25
【问题描述】:
首先,我们受限于使用现有的 Web 框架来处理身份验证和授权。 Web 项目使用表单身份验证并写入加密的 cookie。用户信息作为属性暴露给 aspx 页面:LoggedInUser.Current
这有几个属性,包括 userId 和角色列表。
我已经研究过使用 initParams,但在那里并没有很成功(编辑:我最初不能动态地做到这一点)。我创建了一个带有 [Key] 属性的简单 POCO 实体,但我至少需要能够将 userId 从 aspx 页面传递到嵌入的 silverlight。
将动态对象从 aspx 传递到 silverlight 4 的最简单方法是什么?
谢谢大佬:
在aspx页面设置initParams<param name="initParams" value="<%=InitParam%>"/>
在后面的代码中:
private void LoadSilverlightParams()
{
LoggedInUser user = LoggedInUser.Current;
InitParam = "UserId=" + user.PersonId.ToString() + ",";
InitParam += "OrganizationId=" + user.OrganizationId.ToString() + ",";
InitParam += "RoleList=";
foreach(string s in user.Roles)
{
InitParam += s + "|";
}
InitParam.Remove(InitParam.Count() - 1);
}
(不漂亮,但它有效) 然后使用 Slugster 的示例来使用 Silverlight 端的值。
警告:通过 init 参数传递用户信息会将信息作为纯文本公开给查看页面的用户(他们只需查看源代码)。我们最终使用了身份验证域服务并使用与 aspx 相同的用户对象
【问题讨论】:
标签: asp.net silverlight xaml poco