我有一个当前的silverlight应用程序,它在asp.net浏览器窗口中运行,作为我们内部网站的一部分。
我真的需要从系统中获取登录用户的用户名。
我有一个作为OOB运行的测试系统,它将执行从系统获取用户名所需的操作。
我的问题是这个....可以OOB silverlight应用程序仍然驻留在Intranet页面中,因为它没有被标记为OOB应用程序吗?
感谢 贝
答案 0 :(得分:0)
在Silverlight 4 OOB中,当应用程序以提升的权限运行时,您可以使用AutomationFactory。
var username = "";
if (App.Current.HasElevatedPermissions)
using (dynamic shellObj = AutomationFactory.CreateObject("WScript.Network"))
userName = shellObj.UserName;
请注意,您需要参考
如果要部署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上运行的用户名(甚至域名)不应该被认为是正确的。