我正在尝试为 etcd v3+ 实现 C# GRPC 客户端。我能够通过无身份验证和通道 ssl 身份验证进行连接。但是,我也在尝试找出基本的身份验证机制。这是我的实现。using System;using System.Threading.Tasks;using System.Collections.Generic;using Grpc.Core;using Etcdserverpb;using Google.Protobuf;using System.Runtime.CompilerServices;using Grpc.Auth;using Grpc.Core.Interceptors;namespace myproj.etcd{ public class EtcdClient { Channel channel; KV.KVClient kvClient; string host; string username; string password; string authToken; Auth.AuthClient authClient; public EtcdClient(string host, string username, string password) { this.username = username; this.password = password; this.host = host; Authenticate(); // Expirementing with the token, trying to achieve my goal. channel = new Channel(host, ChannelCredentials.Create(ChannelCredentials.Insecure, GoogleGrpcCredentials.FromAccessToken(this.authToken))); // This works. //channel = new Channel(host, ChannelCredentials.Insecure); kvClient = new KV.KVClient(channel); } void Authenticate() { authClient = new Auth.AuthClient(new Channel(host,ChannelCredentials.Insecure)); var authRes = authClient.Authenticate(new AuthenticateRequest { Name = username, Password = password }); this.authToken = authRes.Token; }使用authenticate()方法,我能够从 etcd 服务器获取令牌,但无法找到在后续调用(Get、Put 等)中使用相同令牌的方法。
- 1 回答
- 0 关注
- 346 浏览
添加回答
举报
0/150
提交
取消