Я занимаюсь разработкой UWP-приложения.Поэтому я создал PUT-Webservice с аутентификацией Windows.
Сначала я попытался вызвать его с помощью этого кода:
JPasswordChangeData jPasswordChangeData = new JPasswordChangeData()
{
OldPassword = oldpassword,
NewPassword = newpassword
};
var credential = new NetworkCredential("<username>", "<password>", "<domain>");
string apiServerSecurePath = "https://MyServername:6501/";
var myCache = new CredentialCache();
// Add the target Uri to the CredentialCache with credential object
myCache.Add(new Uri(apiServerSecurePath), "NTLM", executingCredentials);
// Create an HttpClientHandler to add some settings
var handler = new HttpClientHandler();
handler.AllowAutoRedirect = true;
handler.Credentials = myCache;
HttpClient httpClient = new HttpClient(handler);
HttpResponseMessage httpResponseMessage = httpClient
.PutAsync(apiServerSecurePath + "api/ActiveDirectory/ChangePassword/" + username,
new StringContent(JsonConvert.SerializeObject(jPasswordChangeData), Encoding.UTF8, "application/json")).Result;
Но затем я получаюошибка:
The value 'System.Net.CredentialCache' is not supported for property 'Credentials'.
Далее я попытался использовать «Windows.Web.Http.HttpClient»:
var filter = new HttpBaseProtocolFilter();
filter.AllowAutoRedirect = true;
filter.ServerCredential = new PasswordCredential("<Domain>", "<username>", "<password>");
filter.AllowUI = false;
JPasswordChangeData jPasswordChangeData = new JPasswordChangeData()
{
OldPassword = oldpassword,
NewPassword = newpassword
};
Windows.Web.Http.HttpClient windowsHttpClient = new Windows.Web.Http.HttpClient(filter);
//HttpClient httpClient = new HttpClient();
var httpResponseMessage = await windowsHttpClient.PutAsync(
new Uri("http://MyDomain:6001/api/ActiveDirectory/ChangePassword/" + txtblk_samaccountname.Text.Trim()),
new HttpStringContent(JsonConvert.SerializeObject(jPasswordChangeData), Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json"));
Я также установил необходимыеФункции в Package.appxmanifest.
Извините, у меня есть только скриншот на немецком языке.Вот перевод:
- Интернет (клиент и сервер)
- Интернет (клиент)
- Частные сети (клиент и сервер)
- Корпоративная аутентификация
Но затем я получаю этот ответ от веб-службы:
Переведеноэто означает:
401 - Несанкционированный: доступ запрещен из-за неверных учетных данных.
Указанные учетные данные не разрешают вам просматривать этот каталог или страницу.
Есть ли у кого-тоИдея, в чем моя неудача?
Встряхну вперед!
С наилучшими пожеланиями
Матиас