【发布时间】:2015-06-02 20:06:21
【问题描述】:
所以我的 ASP.NET 站点托管在 Intranet 上。我需要做的一件事是,如果他们试图通过我设置的简单 API 进行 POST 请求,则能够获取该人的活动目录用户名。
目前我对自己的设置感到非常困惑。在我的 web.config 中,我有以下内容:<authentication mode="Windows" />
在我的 applicationhost.config 我有这个:
<authentication>
<anonymousAuthentication enabled="true" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<windowsAuthentication enabled="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
</authentication>
但是,如果我关闭匿名身份验证,它会破坏我通过 python 中的 urllib2 调用的所有 GET 方法,并且我无法访问它们(401 Forbidden)。
我真正想要的是能够做这样的事情:
string logonName = User.Identity.Name;
只要有对服务器的 POST 请求,然后将该名称与活动目录进行比较,以查看它们是否在具有正确权限的组中进行 POST。目前,如果我对用户名进行硬编码,我就有这个工作,但每当我发送 POST 请求时,它总是进行匿名身份验证并为用户返回""。
那么有什么方法可以在我的 ASP.NET 应用程序中获取只是一个用户名(不需要密码)?这应该在 python 端处理,还是有一种简单的方法来配置我的设置来做到这一点,如果是这样,如何?
任何方向都将不胜感激。
【问题讨论】:
标签: python asp.net iis asp.net-web-api webforms