У меня проблемы с аутентификацией Windows в приложении REST WCF.
Используя VS2010, я выбрал Новый проект> Приложение службы REST WCF.
Я изменил web.config, чтобы убедиться, чтоПроверка подлинности Windows и запрет анонимных пользователей.
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
Я изменил Service1.cs, чтобы вернуть имя пользователя в ответе:
[WebGet(UriTemplate = "",
RequestFormat= WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle=WebMessageBodyStyle.Bare)]
public List<SampleItem> GetCollection()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";
string fullID = ServiceSecurityContext.Current.WindowsIdentity.Name;
return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello " + fullID } };
}
Я успешно тестирую его на локальном компьютере, затем публикуюэто в IIS7 в Windows Server 2008. В диспетчере IIS я включаю проверку подлинности Windows в приложении и отключаю все другие типы проверки подлинности.Я даю ему свой собственный пул приложений со встроенным управляемым конвейерным режимом.
Я могу успешно увидеть его в проводнике Windows, работающем на компьютере с Win2008 (http://localhost/JobManager/Service1/)
Используя IE 7 с другого компьютера, однако он запрашиваетменя дважды для имени пользователя / пароля, я заполняю его дважды, но во второй раз получаю ошибку 401. (Несанкционированный: доступ запрещен из-за неверных учетных данных.)