У меня небольшая проблема с реализацией пользовательской базовой аутентификации для asmx в .net 4.0.Я создал HttpModule, который запускает процесс аутентификации потребителя веб-сервиса, запускающего этот код,
HttpApplication application = (source as HttpApplication);
HttpContext context = application.Context;
if ( VirtualPathUtility.GetFileName(context.Request.FilePath).Contains("svcEWS.asmx"))
{
string username = "", password = "";
string authHeader = HttpContext.Current.Request.Headers["Authorization"];
if (!string.IsNullOrEmpty(authHeader) && authHeader.StartsWith("Basic"))
{
//Authenticate here
}
}
Однако при достижении этого кода заголовок аутентификации отсутствует.Потребляющее веб-приложение просто вызывает,
EWS.svcEWS svcEWS = new EWS.svcEWS();
svcEWS.Credentials = new NetworkCredential("admin", "admin", "example.com");
svcEWS.HelloWorld();
IIS настроен для работы с анонимной аутентификацией на анонимную аутентификацию, чтобы предотвратить перехват любых запросов авторизации.
Что-то мне не хватает, чтобы клиент передал правильный заголовок моему модулю?