如何从Azure获取当前的WindowsIdentity

时间:2018-02-27 14:42:52

标签: azure model-view-controller active-directory

我们正在使用MVC,Entity Framework和Azure开发内部网站。员工将来执行不同的工作相关操作,但我们希望通过我们的内部部署AD进行身份验证。我们有一个应用服务,其VNet配置为我们的内部部署AD。我可以使用用户的用户名和密码进行调用,以便对AD进行验证。我正在尝试做的是自动获取他们的WindowsIdentity并自动查找它们以减少用户必须做的一些步骤,并在可能的情况下自动签名。否则我会将它们重定向到登录屏幕。

当我调用代码时

System.Security.Principal.WindowsIdentity.GetCurrent().Name;

它返回“IIS APPPOOL \ Test-WebApp”而不是我正在寻找的“DOMAIN \ UserName”。

我已尝试将以下内容添加到web.config。

<authorization>
   <deny users="?"/>
   <allow users="*"/>
 </authorization>

但这给了我一个“你没有权限查看这个目录或页面。”错误。如果我尝试从UserPrincipal.Current获取此信息,我会收到相同的错误。

有人可以帮我指点正确的方向吗?感谢。

1 个答案:

答案 0 :(得分:0)

  

有人可以帮我指点正确的方向吗?

您似乎使用Azure WebApp服务,如果是这种情况,不幸的是,我们无法在azure WebApp服务中使用Windows身份验证

也许Azure网站Azure Actice Directy是最佳选择。 Sync from AD to Azure Actice Directy也很容易设置。然后使用Azure Easy Authentication来执行此操作。

如果您仍想使用Windows身份验证,我建议您使用Azure VM。您需要将VM加入AD。