Silverlight客户端用户名

| 我正在尝试通过启动应用程序的.aspx页面中的HttpContext.Current.User.Identity.Name将客户端用户名返回到Silverlight。 我已经将它连接到InitParams上,可以很好地将它与ASP.Net Development Server一起传递到silverlight中,但是当我更改为IIS网站时,它将返回一个空字符串。 我们所有的用户都将位于具有不同域的同一IP子网中。这是一个Intranet应用程序。我需要知道他们是谁,最好是不进行身份验证,以便加载正确的接口。我尚未在该应用程序中建立任何Windows或Forms身份验证。 ....可能吗?     
已邀请:
如果没有服务器端的身份验证,我相信这是不可能的。您必须具有ASP.NET页的身份验证才能将客户端的用户名写入该初始化参数。 测试Web服务器的进程正在以本地开发人员的身份运行,由于客户端和服务器都以同一用户身份运行,因此它似乎正在运行。 建议: 在IIS中为该应用程序文件夹启用Windows身份验证,该应用程序文件夹包含ASP.Net页面。禁用匿名。从理论上讲,这对于Intranet来说应该没问题。在这一点上,我认为您应该能够从HTTP上下文中获取Authenticated用户。我们使用Thread.CurrentPrincipal.Identity.Name,因为我们是在WCF Web服务中执行此操作的。 并非所有浏览器都支持Windows身份验证。 IE和Chrome似乎效果最好。 Firefox要求您启用每个站点(查找\“ trusted-uris \”设置,请注意,“协商”和“ NTLM”是单独的设置)。 Safari和Opera以及非Windows客户端,我不确定。 为了获得跨浏览器的更一致的支持,请在Silverlight中查看\“ alternative \”客户端HTTP。但是,我想这与在ASP页面中设置init参数无关。如果可以在加载后向另一个ASP页(或Web服务)提出另一个请求以获取用户,则可以选择使用此其他http堆栈。我发现它本身支持身份验证,而与浏览器无关。     

要回复问题请先登录注册