Как реализовать HTTPS с дайджест-аутентификацией в С#.Net? согласно msdn, класс учетных данных не поддерживает SSL. Итак, как мы можем реализовать аутентификацию? мой код работает с базовой аутентификацией, но выдает ошибку с дайджестом.

0
Nikhil 28 Дек 2009 в 20:10
Вы пытались просто указать URL-адрес как https://... для объекта WebRequest?
 – 
President James K. Polk
28 Дек 2009 в 20:27

2 ответа

Вы можете указать тип учетных данных при создании учетных данных в CredentialCache. , который используется для веб-клиентов и веб-запросов. Так, например, чтобы заполнить CredentialCache, чтобы попробовать дайджест-аутентификацию, вы можете использовать

CredentialCache cache = new CredentialCache();
Uri prefix = new Uri ("http://www.example.com");
cache.Add (prefix, "Digest",  new NetworkCredential ("username", "passwd"));

WebClient wc = new WebClient();
wc.Credentials = cache;

Поскольку дайджест-аутентификация зависит от целевого URL-адреса и области, если она указывает, что вам нужно правильно их получить.

3
blowdart 28 Дек 2009 в 22:21

Вы пытаетесь комбинировать вещи, которые обычно считаются альтернативами друг другу. HTTP Digest Authentication шифрует учетные данные пользователя с помощью MD5, который в настоящее время не считается достаточно безопасным.

Итак, сообщение здесь: используйте HTTPS с базовой аутентификацией.

2
Vitaliy Liptchinsky 28 Дек 2009 в 21:42
У дайджестов есть одноразовые номера, которые действуют как соль. Так что теоретически, если кто-то выполняет предварительные вычисления со всеми значениями nonce или создает радужные таблицы, это может быть проблемой, но на самом деле это не так.
 – 
blowdart
28 Дек 2009 в 21:48