Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 4获取当前用户_Silverlight - Fatal编程技术网

Silverlight 4获取当前用户

Silverlight 4获取当前用户,silverlight,Silverlight,我看到过关于Silverlight 2的问题,但我没有看到关于Silverlight 4的任何问题 有没有办法让当前用户在Silverlight 4.0中运行应用程序?我记得我把它看作是4.0的一个特性,但我找不到它。(也许这只是我一厢情愿的想法。)我会想象它必须来自运行浏览器的操作系统或浏览器本身。(应用程序未在本地安装,它正在浏览器中运行) 我有一个解决方案,我调用web服务方法,它只执行以下操作来获取用户名。但是,我不希望必须调用web服务 HttpContext.Current.User

我看到过关于Silverlight 2的问题,但我没有看到关于Silverlight 4的任何问题

有没有办法让当前用户在Silverlight 4.0中运行应用程序?我记得我把它看作是4.0的一个特性,但我找不到它。(也许这只是我一厢情愿的想法。)我会想象它必须来自运行浏览器的操作系统或浏览器本身。(应用程序未在本地安装,它正在浏览器中运行)

我有一个解决方案,我调用web服务方法,它只执行以下操作来获取用户名。但是,我不希望必须调用web服务

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%>"/>