如何从Azure获取当前的WindowsIdentity

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Azure获取当前的WindowsIdentity相关的知识,希望对你有一定的参考价值。

我们正在使用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获取此信息,我会得到同样的错误。

有人可以请帮助我指出正确的方向吗?谢谢。

答案

有人可以请帮助我指出正确的方向吗?

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

也许Azure网站Azure Actice Directy是最好的选择。 Sync from AD to Azure Actice Directy也很容易设置。然后使用Azure Easy Authentication来做到这一点。

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

以上是关于如何从Azure获取当前的WindowsIdentity的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Azure 文件共享中获取文件元数据?

如何使用 C# 中的 Azure.Storage.Blobs 从 Azure 存储 Blob 以 ByteArray 格式获取文件

如何获取 Azure 主题订阅的消息计数?

如何使用 asp.net mvc 从 azure 获取访问令牌

如何通过 API 调用从 azure 容器中获取 blob 数据?

如何通过代码从 Azure 应用程序洞察中获取事务日志?