Ejemplo n.º 1
0
        public override Task <CertificateInfoResponse> GetCertificateInfo(Empty request, ServerCallContext context)
        {
            var httpContext       = context.GetHttpContext();
            var clientCertificate = httpContext.Connection.ClientCertificate;

            Console.WriteLine(clientCertificate);
            var name            = string.Join(',', context.AuthContext.PeerIdentity.Select(i => i.Value));
            var certificateInfo = new CertificateInfoResponse
            {
                HasCertificate = context.AuthContext.IsPeerAuthenticated,
                Name           = name
            };

            return(Task.FromResult(certificateInfo));
        }
Ejemplo n.º 2
0
        public override Task <CertificateInfoResponse> GetCertificateInfo(Empty request, ServerCallContext context)
        {
            // ClientCertificateMode in Kestrel must be configured to allow client certificates
            // https://docs.microsoft.com/dotnet/api/microsoft.aspnetcore.server.kestrel.https.httpsconnectionadapteroptions.clientcertificatemode

            // Use the following code to get the client certificate as an X509Certificate2 instance:
            //
            // var httpContext = context.GetHttpContext();
            // var clientCertificate = httpContext.Connection.ClientCertificate;

            var name            = string.Join(',', context.AuthContext.PeerIdentity.Select(i => i.Name));
            var certificateInfo = new CertificateInfoResponse
            {
                HasCertificate = context.AuthContext.IsPeerAuthenticated,
                Name           = name
            };

            return(Task.FromResult(certificateInfo));
        }