Silverlight 4获取当前用户
我看到过关于Silverlight 2的问题,但我没有看到关于Silverlight 4的任何问题 有没有办法让当前用户在Silverlight 4.0中运行应用程序?我记得我把它看作是4.0的一个特性,但我找不到它。(也许这只是我一厢情愿的想法。)我会想象它必须来自运行浏览器的操作系统或浏览器本身。(应用程序未在本地安装,它正在浏览器中运行) 我有一个解决方案,我调用web服务方法,它只执行以下操作来获取用户名。但是,我不希望必须调用web服务Silverlight 4获取当前用户,silverlight,Silverlight,我看到过关于Silverlight 2的问题,但我没有看到关于Silverlight 4的任何问题 有没有办法让当前用户在Silverlight 4.0中运行应用程序?我记得我把它看作是4.0的一个特性,但我找不到它。(也许这只是我一厢情愿的想法。)我会想象它必须来自运行浏览器的操作系统或浏览器本身。(应用程序未在本地安装,它正在浏览器中运行) 我有一个解决方案,我调用web服务方法,它只执行以下操作来获取用户名。但是,我不希望必须调用web服务 HttpContext.Current.User
HttpContext.Current.User.Identity.Name.ToUpper();
提前谢谢 您可能会发现将名称作为参数传递到silverlight应用程序中更容易在标准Inbrowser silverlight应用程序中获取用户名客户端是不可能的,如果可能的话,在安全方面这将是一件非常糟糕的事情
就我个人而言,如果我有这个要求,我可能会使用一些web服务、WCF或简单的
IHttpHandler
服务器端。然而,我倾向于称之为“UserContext”并发送XML。XML将包含用户名。这将允许在以后进一步的需求变得明确时向XML中添加额外的特定于用户的状态。添加这些新的信息块很容易。在Silverlight对象标记中添加一个名为initParam的新参数(注意大小写)。通过它,您可以将值作为key=value[,key=value,…]对传递。
在这里,我传递一个usrIdentity和value键作为当前用户标识名
<param name="initParams" value='usrIdentity=@HttpContext.Current.User.Identity.Name'/>
这是休斯通的建议。MS链接被更正为@Vishnoo Rath;你应该试试这个:
<param name="initParams"
value="usrIdentity=<%=HttpContext.Current.User.Identity.Name%>"/>
如果您可以动态更改页面上下文(如在aspx或mvc视图中)而不是startPage=Page1 write username=如果您确实需要,请Silverlight查询用户名的当前url,或者查询延迟回复。简单的解决方案是为您的IIS站点启用直通身份验证。然后在default.aspx(或asp页面启动应用程序的内容)中,将用户像这样放入InitParams中,并在mainpage.xaml.cs中读取它们:System.Text.StringBuilder sb=new System.Text.StringBuilder();某人加上(“”);InitParams.Text=sb.ToString()
<param name="initParams"
value="usrIdentity=<%=HttpContext.Current.User.Identity.Name%>"/>