NSURLProtectionSpace官方文档阅读

NSURLProtectionSpace

OverView

NSURLProtectionSpace对象表示需要身份验证的服务器或服务器的一部分。 保护空间定义了一系列匹配约束,用于确定应提供哪个凭证。

例如,请求向你的代理提供了一个NSURLAuthenticationChallenge对象来请求客户端用户名和密码,你应该为特定主机,端口,协议和领域提供正确的用户名和密码,如挑战的保护空间中所指定(不懂~~~)。

NOTE:这个类没有指定的初始化程序; 它的init方法总是返回nil。 你必须通过调用Creating a protection space描述的初始化方法之一来初始化此类。

Symbols

Creating a protection space
  • - (instancetype)initWithHost:(NSString *)host port:(NSInteger)port protocol:(NSString *)protocol realm:(NSString *)realm authenticationMethod:(NSString *)authenticationMethod

    初始化一个保护空间对象;

parameters explanation
host 保护空间的主机名
port 保护空间的端口。 如果端口为0,则使用指定协议的默认端口,例如,HTTP用80。 注意,服务器可以自行处理这些值。
protocol 保护空间对象使用的协议。 协议的值等同于保护空间中URL的scheme,例如“http”,“https”,“ftp”等。
realm 指示主机协议特定细分的字符串。 如果没有指定的领域,或者协议不支持领域,领域可能为nil。
authenticationMethod 要使用的身份验证类型。 认证方法应设置为 NSURLProtectionSpace Authentication Methods(见后面)中的其中一个值,否则使用默认值NSURLAuthenticationMethodDefault。

  • - (instancetype)initWithProxyHost:(NSString *)host port:(NSInteger)port type:(NSString *)type realm:(NSString *)realm authenticationMethod:(NSString *)authenticationMethod

    初始化代理服务器的保护空间对象。

    type:代理服务器的类型。 proxyType的值应设置为NSURLProtectionSpace Proxy Types(见后面)中指定的值之一。

Getting protection space properties
  • @property(readonly, copy) NSString *authenticationMethod

    调用者的认证方法;


  • @property(readonly, copy) NSArray *distinguishedNames

    可接受的进行客户端证书认证的证书颁发机构。
    如果保护空间的身份验证方法不是客户端证书,则为nil。 返回的颁发机构使用DER编码规则(DER)进行编码。


  • @property(readonly, copy) NSString *host

    保护空间的主机名;


  • @property(readonly) BOOL isProxy

    保护空间是否代表一个代理服务器;


  • @property(readonly) NSInteger port

    保护空间的端口;


  • @property(readonly, copy) NSString *protocol

    保护空间的协议;如果是代理服务器的保护空间,那么为nil;


  • @property(readonly, copy) NSString *proxyType

    保护空间的代理类型;如果保护空间不是表示代理服务器,则为nil;


  • @property(readonly, copy) NSString *realm

    保护空间的认证领域;
    如果没有设置域,则为nil。 通常只有HTTP和HTTPS身份验证时才使用此属性。


  • @property(readonly) BOOL receivesCredentialSecurely

    一个布尔值,指示是否可以安全地发送保护空间的凭据。


  • @property(readonly) SecTrustRef serverTrust

    表示服务器的SSL事务状态。
    如果保护空间的身份验证方法不是服务器信任的,则为nil。

Constants
NSURLProtectionSpace Protocol Types

这些常量描述了保护空间支持的协议;你可以在protocol属性找到这些值;

  1. NSString *const NSURLProtectionSpaceHTT:HTTP
  2. NSString *const NSURLProtectionSpaceHTTPS:HTTPS
  3. NSString *const NSURLProtectionSpaceFTP: FTP
NSURLProtectionSpace Proxy Types

这些常量描述了代理的类型;你可以在proxyType属性找到这些值;

  1. NSString *const NSURLProtectionSpaceHTTPProxy:HTTP代理
  2. NSString *const NSURLProtectionSpaceHTTPSProxy:HTTPS代理
  3. NSString *const NSURLProtectionSpaceFTPProxy:FTP代理
  4. NSString *const NSURLProtectionSpaceSOCKSProxy:SOCKS代理
NSURLProtectionSpace Authentication Methods

这些常量描述了在初始化方法中可以用的认证方法

Authentication Methods Explanation
NSURLAuthenticationMethodDefault 对协议使用默认身份验证方法
NSURLAuthenticationMethodHTTPBasic 对保护空间使用HTTP基本身份验证,如果是HTTP请求,则此方法等同于NSURLAuthenticationMethodDefault
NSURLAuthenticationMethodHTTPDigest 对保护空间使用HTTP摘要身份验证
NSURLAuthenticationMethodHTMLForm 对保护空间使用HTML表单身份验证
NSURLAuthenticationMethodNegotiate 对保护空间使用Kerberos或NTLM身份验证
NSURLAuthenticationMethodNTLM 对保护空间使用NTLM身份验证
NSURLAuthenticationMethodClientCertificate 对保护空间使用客户端证书验证,该认证方法可以应用于任何协议。
NSURLAuthenticationMethodServerTrust 对保护空间执行服务器信任身份验证(证书验证)。此验证方法可以应用于任何协议,最常用于覆盖SSL和TLS链验证。

其中对于NSURLAuthenticationMethodHTMLForm:URL加载系统从不会根据此认证方法发出认证挑战。 但是,如果您的应用程序通过提交Web表单(或以其他中立协议的方式)进行身份验证,你可以指定此保护空间当你坚持要这么做或在你在NSURLCredentialStorage类中查找证书时。

你可能感兴趣的:(NSURLProtectionSpace官方文档阅读)