如何在OOB应用程序中获取用户名?

时间:2012-03-15 12:52:57

标签: silverlight silverlight-oob

我有一个当前的silverlight应用程序,它在asp.net浏览器窗口中运行,作为我们内部网站的一部分。

我真的需要从系统中获取登录用户的用户名。

我有一个作为OOB运行的测试系统,它将执行从系统获取用户名所需的操作。

我的问题是这个....可以OOB silverlight应用程序仍然驻留在Intranet页面中,因为它没有被标记为OOB应用程序吗?

感谢 贝

2 个答案:

答案 0 :(得分:0)

在Silverlight 4 OOB中,当应用程序以提升的权限运行时,您可以使用AutomationFactory。

var username = "";
if (App.Current.HasElevatedPermissions)
    using (dynamic shellObj = AutomationFactory.CreateObject("WScript.Network"))
        userName = shellObj.UserName;

请注意,您需要参考

  • Microsoft.CSharp.dll和
  • System.Core.dll

Justin Angels Blog

上阅读有关此主题的更多信息

如果要部署Silverlight 4应用程序,它必须用完浏览器,因为浏览器中的沙箱不允许ElevatedPermissions。如果您决定使用Silverlight 5,则可以使用浏览器内应用程序的管理帐户启用ElevatedPermissions(msdn.microsoft.com/en-us/library/ee721083(v=vs.95).aspx)。

虽然您当然可以在Intranet页面内运行应用程序,但只要您(或用户)不安装并运行OOB,它就没有提升权限。因此,该应用程序将无法访问用户名。 似乎这个限制在Silverlight 5中已经部分消失,但我还没有对此进行测试,但是并不能告诉你是否可以采用上述方式。

答案 1 :(得分:0)

我只能猜测您将如何使用用户名,但如果您计划将其用于身份验证或授权,则应进行更多研究。

如果要对用户进行实际身份验证,则服务器必须是这样做的。例如:要求用户名&密码,Windows身份验证等。在PC上运行的用户名(甚至域名)不应该被认为是正确的。