dotnetcore 中的服务结构客户端身份验证 UserPasswordCredential 不起作用

2024-02-19

我正在 aspnetcore (dotnetcore2.0) 应用程序中构建一个小型服务结构维护,但现在无法识别 UserPasswordCredential 类。从here https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/482正如他们所说,这是设计使然。这样我需要转换以前的代码,以便我可以创建一个有效的 FabricClient。如何转换 GetAccessToken() 方法?

    private static FabricClient CreateSecuredFabricClient()
    {
        try
        {
            var claimsCredentials = new ClaimsCredentials();
            claimsCredentials.ServerThumbprints.Add(_sslThumbprint);

            var fc = new FabricClient(claimsCredentials, _clusterConnectionString);

            fc.ClaimsRetrieval += (o, e) =>
            {
                var token = GetAccessToken(e.AzureActiveDirectoryMetadata);
                return token.Result.AccessToken;
            };

            return fc;
        }
        catch (FabricException fex)
        {
            Console.WriteLine("Connect failed: {0}", fex.InnerException.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("Connect failed: {0}", e.Message);
        }
        return null;
    }

    private static Task<AuthenticationResult> GetAccessToken(System.Fabric.Security.AzureActiveDirectoryMetadata aad)
    {
        var authContext = new AuthenticationContext(aad.Authority);

        var authResult = authContext.AcquireTokenAsync(
            aad.ClusterApplication,
            aad.ClientApplication,
            new UserPasswordCredential(_username, _password));
        return authResult;
    }

Here's https://github.com/Azure-Samples/active-directory-dotnet-daemon/blob/master/TodoListDaemon/Program.cs有关如何使用 clientid 和 clientsecret 对 AAD 进行身份验证的示例,方法是使用ADAL https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/.

(这也适用于 aspnetcore 2.0)

基本代码:

var authContext = new AuthenticationContext(authority);
clientCredential = new ClientCredential(clientId, appKey);
result = await authContext.AcquireTokenAsync(resourceId, clientCredential);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dotnetcore 中的服务结构客户端身份验证 UserPasswordCredential 不起作用 的相关文章

  • Asp.net core默认路由

    简化版Startup code public void ConfigureServices IServiceCollection services services AddMvc public void Configure IApplica
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • 选择里面的 Include in EF Core

    我有一个如下所示的实体 为简洁起见 部分删除 它包括许多其他属性 public class Tender Key DatabaseGenerated DatabaseGeneratedOption Identity public int I
  • 如何获取 OpenIdConnectOptions StateDataFormat

    我有一个自定义 Open Id Connect 服务器 使用身份服务器4 https github com IdentityServer IdentityServer4 此 SSO 服务器具有用于非标准 Open Id Connect 操作
  • 当实体位于不同项目中时,为什么 Mediatr 不解析方法?

    我有一个简单的项目来尝试 Mediatr 问题 当我的处理程序的具体类位于我的 API 的同一项目中时 它就可以工作 但是 当我将该处理程序类放入不同的项目 并且 API 引用该项目 ofc 时 它不会解析注册表 我收到此错误 未找到该类型
  • 依赖注入错误:在注册类时尝试激活时无法解析类型的服务

    我创建了一个 NET Core MVC 应用程序 并使用依赖注入和存储库模式将存储库注入到我的控制器中 但是 我收到错误 InvalidOperationException 尝试激活 WebApplication1 Controllers
  • .NET CORE WEB API 接受整数列表作为 HTTP GET API 中的输入参数

    我正在使用 net core 3 Web api 下面是我的操作的样子 它使用 HTTP GET 我想传递几个字段 其中一个字段是整数列表 HttpGet Route cities public ActionResult
  • 根据 .NET Core 2.1 中的更改重新加载 Serilog JSON 配置

    我目前正在开发 ASP NET Core 2 1 应用程序 并使用 Serilog 进行日志记录 我想在运行时为我的 Serilog 实现重新加载应用程序设置文件 我的目标是在运行时更改日志级别 例如我写入minimumLevelDebug
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 从类型获取 DbSet

    我正在尝试为 MVC 6 应用程序制作通用表查看器 编辑器 我目前使用 Context GetEntityTypes 返回给我一份表格列表 现在我需要获取特定类型的数据 我当前的实现是 On my context public IQuery
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • .NET 标准与 .NET 核心

    我已经了解了 NET Standard 和 NET Core 之间的区别 但我真的不知道区别是什么 或者何时选择 NET Standard 库项目以及何时选择 NET Core 库项目 我读到 NET Standard 是为了确保一组 AP
  • 将 CSS 类添加到 TagHelper 中的 html 元素

    在 ASP NET Core 视图中 我有以下内容 div class message div 我使用以下 TagHelper 来创建 Tag Helper HtmlTargetElement div Attributes MessageN
  • 有没有办法处理asp.net core odata错误

    有没有办法处理 asp net core odata 错误 我有一个模特班DimDateAvailable具有一个属性 主键为int DateId 然后我打电话 data DimDateAvailable select test 其他调用按
  • 从 ASP.NET 5 引用 .NET 4.6 项目会导致生成错误

    在我的 ASP NET 5 RC1 项目 仅针对 dnx46 中 我尝试添加对针对 net 4 6 的 经典 类库项目的引用 我在构建时收到此错误 MSBuild 14 0 bin Microsoft Common CurrentVersi
  • 使用控制台记录器的控制台应用程序不会写入最终消息。轻松重现

    Windows 上使用 LoggerFactory 的 net 6 控制台应用程序 最终消息不会出现在控制台上 loggerFactory Dispose 没有帮助 Ilogger 没有 Dispose 方法 这是一个复制品 大约会出现 2
  • 如何使用 AddMvcCore() 实现“纯”ASP.NET Core Web API

    我见过很多使用默认的 ASP NET Core Web API 项目AddMvc 服务而没有意识到使用AddMvcCore 由于对服务的控制 这是一个更好的选择 到底如何使用 ASP NET Core Web API 来实现AddMvcCo
  • 在 MVC 控制器内打开 websocket 通道

    有没有人有在 MVC 控制器内打开 websocket 连接的良好经验 技术栈 ASPNET Core 1 0 RC1 MVC dnx46 System Net WebSockets 为什么使用 MVC 而不是中间件 为了整体一致性 路由
  • 奥尔良谷物任务调用结果

    对于这个长问题我深表歉意 我一直在对奥尔良进行实验 以了解它的各种特性 这些问题在逻辑上都归为一类 第一个测试涉及客户端每 1 秒向特定 Grain 发出一次请求 而 Grain 需要 10 秒来执行请求 代码是这样的 client cod
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h

随机推荐