从 ASP.NET 中的 POST 请求获取用户身份
Getting User Identity from a POST Request in ASP.NET
所以我的 ASP.NET 站点托管在内部网上。我需要做的一件事是,如果他们试图通过我设置的简单 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 禁止访问)。
我真正想要的是能够做这样的事情:
string logonName = User.Identity.Name;
每当向服务器发出 POST 请求时,然后将该名称与活动目录进行比较,以查看它们是否在具有创建 POST 的正确权限的组中。目前,如果我对用户名进行硬编码,我就可以正常工作,但是每当我发送 POST 请求时,它总是进行匿名身份验证,并为用户提供 returns ""
。
那么有什么方法可以在我的 ASP.NET 应用程序中获取 只是 一个用户名(不需要密码)?这应该在 python 端处理,还是有一种简单的方法来配置我的设置来做到这一点,如果是这样,怎么做?
任何方向将不胜感激。
如果您正在使用 windows 身份验证,那么您应该关闭匿名身份验证。
如果您在浏览器外部进行 api 调用,例如不是从 jquery 调用,则它不会将凭据传递给 api 服务器。
你可能会做什么,可能只是关闭windows身份验证并将用户名作为参数传递给api方法,你可以使用它来查询AD。
所以我的 ASP.NET 站点托管在内部网上。我需要做的一件事是,如果他们试图通过我设置的简单 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 禁止访问)。
我真正想要的是能够做这样的事情:
string logonName = User.Identity.Name;
每当向服务器发出 POST 请求时,然后将该名称与活动目录进行比较,以查看它们是否在具有创建 POST 的正确权限的组中。目前,如果我对用户名进行硬编码,我就可以正常工作,但是每当我发送 POST 请求时,它总是进行匿名身份验证,并为用户提供 returns ""
。
那么有什么方法可以在我的 ASP.NET 应用程序中获取 只是 一个用户名(不需要密码)?这应该在 python 端处理,还是有一种简单的方法来配置我的设置来做到这一点,如果是这样,怎么做?
任何方向将不胜感激。
如果您正在使用 windows 身份验证,那么您应该关闭匿名身份验证。
如果您在浏览器外部进行 api 调用,例如不是从 jquery 调用,则它不会将凭据传递给 api 服务器。
你可能会做什么,可能只是关闭windows身份验证并将用户名作为参数传递给api方法,你可以使用它来查询AD。