MVC5 .Net 4.6.1
我有以下代码来获取当前登录的Windows用户:
var windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
var value = windowsIdentity.Name;//returns SYSTEMS\\CJones
在本地运行时就像魅力一样。我将我的网站部署到Azure,现在这个确切的代码返回:
azurewebappname_ee6a
当然这不起作用。有谁知道如何获取当前登录的Windows用户,以便不会检测到Azure Web应用程序?
答案 0 :(得分:1)
是的,它看起来像一些服务主体。您正在部署到Web应用程序,并且,由于它是一项服务,因此没有“登录某人”这样的功能 - 您根本无法连接到底层操作系统 - 它是不同的模型,特别是如果Web应用程序是在共享模式下。
如果您需要实现此类功能,则虚拟机部署看起来更合适。
答案 1 :(得分:0)
正如亚历克斯所说,这是因为网络应用程序是共享模型。您需要按照此blog中的说明向Web应用添加一定级别的身份验证。然后使用适当的API检索登录用户的数据。
存在许多用于身份验证的集成方法,因此很难为所有这些方法提供示例。只是要添加,因为它是您正在访问的Internet区域URL,因此用户名不会被公开,这就是为什么它在技术上不能简单地工作(以防您想知道)。