Привет, У меня есть служба обслуживания (DotNet 4.0 WCF VS 2012) в HTTPS. Мой клиент будет прикреплять к нему сертификат (сертификат предоставляется мной (файл .cer)). Мне нужно вернуть сертификат из запроса и прочитать его информацию для его аутентификации. Серийный номер, Thumprint хранятся в БД, когда мне нужно чтобы проверить то же самое.Получение информации о сертификате из запроса в Restful POST
Я сделал SSL и передал файл cer клиенту.
Я использовал следующий код для чтения назад мой сертификат
начать C# код
если (OperationContext.Current.ServiceSecurityContext.AuthorizationContext.ClaimSets == NULL) бросить новый Exception ("Нет службы claimset не настроен неправильно");
if (OperationContext.Current.ServiceSecurityContext.AuthorizationContext.ClaimSets.Count <= 0)
throw new Exception ("No claimset service configured wrong");
var cert = ((X509CertificateClaimSet)OperationContext.Current.ServiceSecurityContext.
AuthorizationContext.ClaimSets[0]).X509Certificate;
конец
C# код в приведенном выше коде я всегда получает claimSets.Count = 0.
ли какой-либо параметр, что нужно сделать в моем сервере web.config, я сделал следующие настройки в моей стороне сервера web.config
'режим безопасности = "Транспорт"' 'транспорт clientCredentialType = "None"' 'безопасность'
Пожалуйста, дайте мне знать. Отсутствуют ли какие-либо настройки на стороне клиента или на стороне сервера.
В стороне клиента я использую следующий код оных КВЖД на запрос
C# Код Start
X509Certificate2 cert = new X509Certificate2 ("C:\\xxxxxx.cer");
System.Net.ServicePointManager.ServerCertificateValidationCallback =
delegate(Object obj, X509Certificate X509certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
{
return true;
};
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(xxxxx.Text.Trim());
webRequest.ClientCertificates.Add(cert);
C# код Конец
У меня не было каких-либо специальных настроек в моей файл клиента web.config.