这行代码如何工作?
我正在尝试修改此网址,但是从查看Apple文档来看,它没有给出我应该放置密码/ URL的位置。
NSString *password = [(NSString *)CFURLCopyPassword((CFURLRef)[self.request URL]) autorelease];
这行代码是AFNetworking框架的一部分,因此我可以通过身份验证。
如何为此构建URL以正确获取密码?我还没有运气。
我尝试将其放在前面的用户名:密码中,但这不对。密码没有被抓住。
所以基本上http://userid:password@www.anywhere.com/完全绕过了方法,这不是我想做的。
答案 0 :(得分:1)
您可以找到此身份验证方式的简短说明here,有关详细信息,您必须查找正确的标准描述网址。
以后网页无法使用的网址示例:ftp://username:password@hostname/
如果委托没有实现此方法的默认值 使用实现。 如果请求的有效凭据 作为网址的一部分提供,或者可以从 NSURLCredentialStorage [挑战发件人]发送了一个 ** useCredential:forAuthenticationChallenge:使用凭证。如果 挑战没有凭证或凭证无法授权 访问,然后继续执行CredentialForAuthenticationChallenge:is 发送给[挑战发件人]而不是。
答案 1 :(得分:1)
基本上 - 某些URL的结构包含用户名和密码
http://userid:password@www.anywhere.com/
如果您将具有此格式的网址传递给该功能,则如果网址格式正确,则会返回该网址的密码部分;如果不是,则返回空字符串(CFSTR(""))
。
以同样的方式,您可以使用CFURLCopyUserName
函数获取用户ID。