iphone - Objective-C 和抢先式身份验证

标签 iphone objective-c ipad apache authentication

我正在为我的 Ipad 应用程序尝试从 WebService 获取数据。

为此,我将 NSURLConnection 与 NSMutableURLRequest 结合使用。

Web 服务在 Apache-Coyote 1.1 上发布,具有抢先式基本身份验证,但我不知道如何从 Objective-C 发送我的凭据。

有人知道如何在 Objective-C 中设置我的用户名/密码以使用 Apache 抢先式身份验证系统登录我的客户端吗?

谢谢。

最佳答案

编辑:

为了自己设置凭据,您需要能够对用户名和密码进行 base64 编码并设置适当的 header 。来自 Cocoa With Love 的 Matt Gallagher 在 how to add a category to NSData 上发表了一篇很棒的文章轻松做到这一点。

NSString* username = @"username";
NSString* password = @"password";

NSString* encodedUsername = [[username dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString* encodedPassword = [[password dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];

NSURL* url = [NSURL URLWithString:@"http://yourUrl.com/"];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
NSString* headerValue = [NSString stringWithFormat:@"Basic %@:%@", encodedUsername, encodedPassowrd];
[request addValue:@"Authorization" forHTTPHeaderField:headerValue];

[NSURLConnection connectionWithRequest:request delegate:self];

对于凭据的所有使用,请确保您是通过 HTTPS 进行所有操作,因为这些凭据实际上是以明文形式传递的。

关于iphone - Objective-C 和抢先式身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714112/

相关文章:

iphone - 使用 drawRect 重绘

java - NSCoding 到 java

ios - 当我在我的 TableView 上滚动时,有时会在我的 TableView 单元格中设置错误的图像。我怎样才能解决这个问题?

ios - App Store发行的新应用程序版本可以保留旧版本吗?

iphone - iOS Safari 图像渲染问题

objective-c - 在 iOS 中使用单独的 View Controller 支持两个方向

ios - iPhone应用程序后台下载

iphone - Segue 未执行 ios

ios - 在不丢弃前一个场景的情况下在 SpriteKit 中呈现一个场景?

iphone - 如何在 Iphone native 应用程序中同步 Google 日历、雅虎日历和 Toodledo?