我在Web中创建了一个属性([ValidateCertificate])来检查每个调用中的证书。我希望访问ClientCertificate属性来验证传入的证书。这来自微软的文档:
public System.Web.HttpClientCertificate ClientCertificate { get; }但是,该属性在我的代码中不存在。下面是我的代码片段:
public async override void OnAuthorization(HttpActionContext httpContext)
{
try
{
X509Certificate2 cert = httpContext.Request.ClientCertificate; // This property doesn't exist.看起来,该属性应该位于HttpRequest对象中,但我只能在此属性代码中访问HttpRequestMessage对象。我想归根结底是这样的:
发布于 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方法中的客户端证书。
https://stackoverflow.com/questions/56567819
复制相似问题