【发布时间】:2016-11-30 18:25:11
【问题描述】:
我有一个应用程序向我们的 https Intranet 站点上的 Web 服务发出 NSURLRequest。当我连接到我们的办公网络时,它可以很好地进行身份验证,我可以进行这些 Web 服务调用。但是,如果我在外部网络上,则应用无法验证我的身份以进行这些调用。
我正在使用 HTTP Post 请求。而且我知道它的代码很好,因为它在我使用公司 wifi 时可以工作。
我尝试过使用 WillSendRequestForAuthenticationChallenge 和 canAuthenticateAgainstProtectionSpace,前者被调用。我正确使用了凭据,但我仍然收到来自网络服务的“您已注销”响应。
我被告知不允许明文身份验证登录到我们的 Intranet。
我也试过用这个:
NSString *authStr = [NSString stringWithFormat:@"%@:%@", [self username], [self password]];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodingWithLineLength:80]];
[theRequest setValue:authValue forHTTPHeaderField:@"Authorization"];
【问题讨论】:
标签: ios objective-c authentication nsurlconnection nsurlrequest