У меня есть проект ASP.NET MVC 4 с использованием веб-API. На контроллере я установил для класса требование авторизации с использованием атрибута [Авторизовать]. Для проверки подлинности я использую провайдер членства ASP.NET и установил, что мой Web.Config использует аутентификацию "Forms". Вот где я застрял:
Все работает отлично до тех пор, пока я не закончил тестирование API, и я хочу защитить контроллер с помощью атрибута [Authorize], чтобы я мог начать тестировать проверку подлинности в отношении пользователей моего провайдера членства. Поэтому я запускаю Fiddler и делаю тот же вызов, добавляя атрибут Authorization: Basic вместе с именем пользователя: password из моего поставщика членства следующим образом:
Ответ, который я получаю, несанкционирован 401, и в разделе "Auth" я получаю "Нет заголовка WWW-Authenticate". Тогда я понимаю, что API ищет кодированный SHA1 ключ. Поэтому я запускаю генератор SHA1 из поиска и получаю хэш для моего имени пользователя: пароль и обновляю свой заголовок запроса следующим образом:
Это тоже не работает, и я получаю те же результаты. Кроме того, мне явно нужен какой-то "общий секретный ключ" для использования с сервером для декодирования моего имени пользователя/пароля.
Итак, мои вопросы:
- Как получить этот ключ с сервера (или в этом случае Virtual IIS запущен VS 2012).
- Как это сделать, чтобы делать аутентифицированные вызовы в Fiddler, используя имена пользователей/пароли от поставщика членства ASP.NET.
- Как я буду использовать это в своем клиентском приложении для выполнения тех же вызовов (С# WPF App).
- Является ли это лучше всего в сочетании с SSL на моих HTTP-вызовах? Если нет, то что?
Спасибо заранее!