这行代码如何工作? AFNetworking / CFURLCopyPassword

时间:2012-09-27 14:28:30

标签: objective-c ios authentication afnetworking

这行代码如何工作?

我正在尝试修改此网址,但是从查看Apple文档来看,它没有给出我应该放置密码/ URL的位置。

 NSString *password = [(NSString *)CFURLCopyPassword((CFURLRef)[self.request URL]) autorelease];

这行代码是AFNetworking框架的一部分,因此我可以通过身份验证。

如何为此构建URL以正确获取密码?我还没有运气。

我尝试将其放在前面的用户名:密码中,但这不对。密码没有被抓住。

所以基本上http://userid:password@www.anywhere.com/完全绕过了方法,这不是我想做的。

2 个答案:

答案 0 :(得分:1)

您可以找到此身份验证方式的简短说明here,有关详细信息,您必须查找正确的标准描述网址。

以后网页无法使用的网址示例:ftp://username:password@hostname/

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html

  

如果委托没有实现此方法的默认值   使用实现。 如果请求的有效凭据    作为网址的一部分提供,或者可以从   NSURLCredentialStorage [挑战发件人]发送了一个   ** useCredential:forAuthenticationChallenge:使用凭证。如果   挑战没有凭证或凭证无法授权   访问,然后继续执行CredentialForAuthenticationChallenge:is   发送给[挑战发件人]而不是。

答案 1 :(得分:1)

基本上 - 某些URL的结构包含用户名和密码

http://userid:password@www.anywhere.com/

如果您将具有此格式的网址传递给该功能,则如果网址格式正确,则会返回该网址的密码部分;如果不是,则返回空字符串(CFSTR(""))

以同样的方式,您可以使用CFURLCopyUserName函数获取用户ID。