С# HttpRequestMessage.GetClientCertificate() возвращает нольC#

Место общения программистов C#
Ответить
Anonymous
 С# HttpRequestMessage.GetClientCertificate() возвращает ноль

Сообщение Anonymous »

Я пытаюсь реализовать простую проверку сертификата SSL/TLS в веб-API.
Я следую этой документации Microsoft, но когда я отправляю запрос через Postman, это не происходит. не нашел никаких сертификатов.
Это все, что я сделал и попробовал:
AuthorizationFilterAttribute

Код: Выделить всё

public class RequireCertificateAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
X509Certificate2 cert = actionContext.Request.GetClientCertificate();

if (cert == null)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "Client Certificate Required"
};

}

base.OnAuthorization(actionContext);
}
}
}
Моя конечная точка

Код: Выделить всё

[RequireCertificate]
[HttpGet]
[Route("ssl/test")]
public IHttpActionResult SslTest()
{
return Ok();
}
Свойства проекта с включенным SSL
[img]https://i.stack.imgur. com/kX1gU.png[/img]

Самоподписанный сертификат SSL создается с помощью команды ниже

Код: Выделить всё

makecert.exe -n "CN=Development CA" -r -sv TempCA.pvk TempCA.cer
Изображение

И сертификат клиента

Код: Выделить всё

makecert.exe -pe -ss My -sr CurrentUser -a sha1 -sky exchange -n "CN=name" -eku 1.3.6.1.5.5.7.3.2 -sk SignedByCA -ic TempCA.cer -iv TempCA.pvk
Изображение

Флаги SSL, которые я добавил в файл IISExpress «applicationhost.config», расположенный в «Documents\IISExpress\config»
Изображение

Я также добавил флаги в файл конфигурации проекта.
Вот как я добавил экспортированный сертификат клиента в Postman:
[img]https://i.stack.imgur. com/1c4Ll.png[/img]

Изображение

Я также пытался экспортировать файл PFX, но получил тот же результат.
Вот что я получаю по запросу:
Изображение

Нулевой сертификат :
Изображение

Я использую .net framework 4.8
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/783 ... rning-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»