首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ClientCertificate访问OnAuthorization

如何从ClientCertificate访问OnAuthorization
EN

Stack Overflow用户
提问于 2019-06-12 17:49:56
回答 1查看 133关注 0票数 1

我在Web中创建了一个属性([ValidateCertificate])来检查每个调用中的证书。我希望访问ClientCertificate属性来验证传入的证书。这来自微软的文档:

代码语言:javascript
复制
public System.Web.HttpClientCertificate ClientCertificate { get; }

但是,该属性在我的代码中不存在。下面是我的代码片段:

代码语言:javascript
复制
    public async override void OnAuthorization(HttpActionContext httpContext)
    {
        try
        {
            X509Certificate2 cert = httpContext.Request.ClientCertificate; // This property doesn't exist.

看起来,该属性应该位于HttpRequest对象中,但我只能在此属性代码中访问HttpRequestMessage对象。我想归根结底是这样的:

  1. 传入参数中是否包含证书?
  2. 我怎么能投到一个我可以得到它的类型?
EN

回答 1

Stack Overflow用户

发布于 2020-05-06 02:24:35

WebApi正在使用您所检查的文档所指定的类。你看错医生了。

当从AuthorizationFilterAttribute创建派生属性类时,系统会提示您将Nuget中的一个名为"Microsoft.AspNet.WebApi.Core“的打包包(仅使用dotnet )与使用"System.Net.Http”的“System.Net.Http”引用到您的项目中。另外两个使用"System.Web.Http.Controllers“和"System.Net.Http”的用户也需要添加。在这些操作之后,您可以使用名为"actionContext.Request.GetClientCertificate()“的扩展方法来获得OnAuthorization方法中的客户端证书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56567819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档