Я изменил пример кода Alamofire, чтобы попытаться поддерживать аудит Digest, но не может заставить его работать.Аутентификация дайджеста в Swift с использованием Alamofire
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let detailViewController = segue.destinationViewController.topViewController as? DetailViewController {
func requestForSegue(segue: UIStoryboardSegue) -> Request? {
switch segue.identifier {
case "GET":
let user = "Administrator"
let password = "password"
let credential = NSURLCredential(user: user, password: password, persistence: .ForSession)
let protectionSpace = NSURLProtectionSpace(host: "172.16.0.56", port: 443, `protocol`: "https", realm: "myrealm", authenticationMethod: NSURLAuthenticationMethodHTTPDigest)
return Alamofire.request(.GET, "https://172.16.0.56")
.authenticate(usingCredential: credential, forProtectionSpace: protectionSpace)
.response {(request, response, _, error) in
println(response)
}
default:
return nil
}
}
if let request = requestForSegue(segue) {
detailViewController.request = request
}
}
}
Если я запускаю этот код, то я получаю ответ:
Optional(<NSHTTPURLResponse: 0x7fa0c3525320> { URL: https://172.16.0.56/ } { status code: 401, headers {
"Accept-Ranges" = bytes;
"Cache-Control" = "no-cache";
Connection = "keep-alive";
"Content-Length" = 163;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Wed, 17 Sep 2014 16:45:29 GMT";
Expires = 0;
Server = "MyServer";
"Www-Authenticate" = "Digest realm=\"myrealm\", nonce=\"4642875290551863156110287\", algorithm=\"MD5\", qop=\"auth\", stale=\"FALSE\"";
} })
Кажется, что Alamofire не делает никаких попыток, чтобы отправить имя пользователя и пароль на сервер хеширован с одноразовым номером вернулся и Я просто возвращаю страницу «Не авторизовано» с сервера. Предполагается ли Alamofire выполнять аутентификацию дайджеста от моего имени или есть ли еще код, который мне нужно написать?
Да, я попробовал снова, и все сработало. Я получил его работу после основного метода проверки подлинности, а не выше. Тесты проверки подлинности были полезны для этого. Благодарю. Все еще возникали проблемы с привязкой AlamoFire к моему проекту, но я отправлю это как еще один вопрос, если у меня все еще возникают проблемы. благодаря – iphaaw