使用 HttpClient 授权 AD 组\用户

帕里什丈夫

每当我在关闭匿名身份验证时尝试从 HttpClient 获取响应时,都会收到 401 错误。

StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, 
Content: System.Net.Http.StreamContent, Headers:
{
    X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcUGFycmlzaFxEb2N1bWVudHNcJ0xSXFNvdXJjZVxBcHBzXExSUiBBRkVcTFJSX0FGLVxhcGlcYWZlXDg0QTk0NjVFQzg2QTQwQjNBNEJCNkJDOTI3MTFGRjNB?=
    Cache-Control: private
    Server: Microsoft-IIS/10.0
    WWW-Authenticate: Negotiate
    WWW-Authenticate: NTLM
    X-Powered-By: ASP.NET
    Date: Mon, 27 Aug 2018 18:14:05 GMT
    Content-Length: 6166
    Content-Type: text/html; charset=utf-8
}

为了测试,我让控制器对单个用户进行身份验证。

[Authorize(Users = @"Domain\Username")]
public class ExampleController : Controller
{
    public async Task<ActionResult> Index(string exampleId)
    {
        var baseUrl = $"{Request.Url.Scheme}://{Request.Url.Authority}{Url.Content("~")}";
        var client = new HttpClient(); // <-- This is WRONG*
        var response = await client.GetAsync($"{baseUrl}api/example/{exampleId}");
        var example = await response.Content.ReadAsAsync<ExampleModel>();
        return View(example);
    }
}

我已经研究过使用HttpClient.DefaultRequestHeaders.Authentication,但我没有看到让它与 ActiveDirectory 一起工作的方法。我看过这里,但不明白在这种情况下我会在哪里获得授权令牌。

如果我手动创建一个新的控制器并直接调用它而不是通过 API 调用它,这可以工作,但在这种情况下它真的没有验证任何东西,对吗?

*编辑:

正如ADyson指出的那样,我的错误没有正确初始化 HttpClient。应该是这样写的:

var client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }); 
阿戴森

您需要设置UseDefaultCredentials = true(在 的实例中HttpClientHandler,您将其传递给HttpClient)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用.Net Core授权AD用户

来自分类Dev

使用PowerShell和ServicePrincipal的AD用户的Azure SQL授权访问

来自分类Dev

使用perl获取AD组的用户

来自分类Dev

使用 Azure AD ADAL.JS 进行组授权 - NodeJS、ReactJS

来自分类Dev

通过使用HttpClient向Microsoft Graph请求用户列表时出现未经授权的问题

来自分类Dev

Jenkins:使用Groovy配置AD插件授权

来自分类Dev

使用 ldapmodify 从 AD 组中删除所有用户

来自分类Dev

如何让 DataStax 的 Cassandra 对 AD 中的嵌套组进行授权?

来自分类Dev

在构建授权策略之前获取 Azure AD 组

来自分类Dev

广告组授权-用户未授权

来自分类Dev

SSMS中AD用户的Azure SQL授权访问

来自分类Dev

使用每个组名列出来自多个 AD 组的用户的命令

来自分类Dev

使用C#HttpClient授权POST到Vimeo API

来自分类Dev

C# LDAP AD 认证,使用职位进行授权

来自分类Dev

如何使用Active Directory用户和组管理Jenkins项目的授权?

来自分类Dev

如何使用Active Directory用户和组管理Jenkins项目的授权?

来自分类Dev

如何使用Powershell或其他工具(递归)获取所有AD用户组?

来自分类Dev

是否可以在AD中为用户组使用密钥表

来自分类Dev

使用Rest(400)错误请求将Azure AD用户添加到组

来自分类Dev

如何使用 ActiveDirectory 库从 LDAP AD 组中获取所有用户?

来自分类Dev

允许用户使用Apache授权吗?

来自分类Dev

作为使用Wordpress的网站上的授权用户?

来自分类Dev

试图使用户授权更干

来自分类Dev

通过嵌套的AD组查找用户和AD组的关系

来自分类Dev

使用PowerShell从AD导入用户

来自分类Dev

使用Powershell移动AD用户

来自分类Dev

Blazor Server应用程序中的IIS中的AD组授权不起作用

来自分类Dev

当未直接获取访问令牌时,使用 .Net HttpClient 使用 Rest API 无法授权

来自分类Dev

在Azure AD中如何为特定区域的用户进行身份验证和授权?

Related 相关文章

  1. 1

    如何使用.Net Core授权AD用户

  2. 2

    使用PowerShell和ServicePrincipal的AD用户的Azure SQL授权访问

  3. 3

    使用perl获取AD组的用户

  4. 4

    使用 Azure AD ADAL.JS 进行组授权 - NodeJS、ReactJS

  5. 5

    通过使用HttpClient向Microsoft Graph请求用户列表时出现未经授权的问题

  6. 6

    Jenkins:使用Groovy配置AD插件授权

  7. 7

    使用 ldapmodify 从 AD 组中删除所有用户

  8. 8

    如何让 DataStax 的 Cassandra 对 AD 中的嵌套组进行授权?

  9. 9

    在构建授权策略之前获取 Azure AD 组

  10. 10

    广告组授权-用户未授权

  11. 11

    SSMS中AD用户的Azure SQL授权访问

  12. 12

    使用每个组名列出来自多个 AD 组的用户的命令

  13. 13

    使用C#HttpClient授权POST到Vimeo API

  14. 14

    C# LDAP AD 认证,使用职位进行授权

  15. 15

    如何使用Active Directory用户和组管理Jenkins项目的授权?

  16. 16

    如何使用Active Directory用户和组管理Jenkins项目的授权?

  17. 17

    如何使用Powershell或其他工具(递归)获取所有AD用户组?

  18. 18

    是否可以在AD中为用户组使用密钥表

  19. 19

    使用Rest(400)错误请求将Azure AD用户添加到组

  20. 20

    如何使用 ActiveDirectory 库从 LDAP AD 组中获取所有用户?

  21. 21

    允许用户使用Apache授权吗?

  22. 22

    作为使用Wordpress的网站上的授权用户?

  23. 23

    试图使用户授权更干

  24. 24

    通过嵌套的AD组查找用户和AD组的关系

  25. 25

    使用PowerShell从AD导入用户

  26. 26

    使用Powershell移动AD用户

  27. 27

    Blazor Server应用程序中的IIS中的AD组授权不起作用

  28. 28

    当未直接获取访问令牌时,使用 .Net HttpClient 使用 Rest API 无法授权

  29. 29

    在Azure AD中如何为特定区域的用户进行身份验证和授权?

热门标签

归档