У меня возникли трудности с аутентификацией Windows в приложении WCF REST.Windows Имя пользователя в WCF 4 Rest
Используя VS2010, я выбрал «Новый проект»> «Приложение службы WCF REST».
Я изменил 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 в приложении и отключает все другие типы проверки подлинности. Я даю ему свой собственный пул приложений с интегрированным режимом управляемого конвейера.
Я могу успешно увидеть в окне проводника работает на машине Win2008 (HTTP: // локальный/JobManager/Service1 /)
Использование IE 7 от другой машины, однако, это заставляет меня дважды имя пользователя/пароль , Я заполняю его дважды, но получаю ошибку 401 во второй раз. (Неавторизованный: доступ запрещен из-за недопустимых учетных данных.)