获取部署到Azure时的用户信息

时间:2016-05-18 15:41:46

标签: c# azure asp.net-identity claims-based-identity

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应用程序?

2 个答案:

答案 0 :(得分:1)

是的,它看起来像一些服务主体。您正在部署到Web应用程序,并且,由于它是一项服务,因此没有“登录某人”这样的功能 - 您根本无法连接到底层操作系统 - 它是不同的模型,特别是如果Web应用程序是在共享模式下。

如果您需要实现此类功能,则虚拟机部署看起来更合适。

答案 1 :(得分:0)

正如亚历克斯所说,这是因为网络应用程序是共享模型。您需要按照此blog中的说明向Web应用添加一定级别的身份验证。然后使用适当的API检索登录用户的数据。

存在许多用于身份验证的集成方法,因此很难为所有这些方法提供示例。只是要添加,因为它是您正在访问的Internet区域URL,因此用户名不会被公开,这就是为什么它在技术上不能简单地工作(以防您想知道)。