Main Content

matlab.net.http.AuthInfo 类

命名空间: matlab.net.http

HTTP 消息中的身份验证或授权信息

描述

当您在 HTTPOptions 对象中提供凭据后,MATLAB® 会自动处理请求消息中的身份验证。使用 AuthInfo 类检查身份验证、指定授权信息,或实现 MATLAB HTTP 接口不会自动处理的身份验证协议,如 OAuth

AuthInfo 类代表下列情况下返回的一个身份验证质询:

  • 您为响应消息调用 AuthenticateField.convert 方法。

  • 您在请求消息的 AuthorizationField 标头字段中插入凭据。当您将 AuthInfo 对象存储在 Authorization 字段中时,MATLAB 会自动在需要的地方用引号引起值,并根据需要插入转义字符。

  • 服务器在 AuthenticationInfoField 标头字段中返回 auth-info 数据。

AuthenticateFieldAuthorizationFieldconvert 方法将该字段中的每个 name=value 对组特性转换为 Parameters 属性中的参数名称-值对组。转义字符以及值前后的任何引号都将被删除。

有关详细信息,请参阅 Internet Engineering Task Force (IETF®) 网站上的 RFC 7235 Authentication 和 RFC 2617 Host-Imp Interface(适用于基本身份验证和摘要式身份验证)。

类属性

Sealed
true

有关类属性的信息,请参阅类属性

创建对象

描述

obj = matlab.net.http.AuthInfo(Scheme,paramName,paramValue) 创建一个 AuthInfo 对象,其中包含 Scheme 属性以及可选的 paramName,paramValue 参数。您可以采用任意顺序指定多个对组参数,例如 paramName1,paramValue1,...,paramNameN,paramValueN

obj = matlab.net.http.AuthInfo(paramName,paramValue) 创建具有空 Scheme 值的 AuthInfo 对象。

obj = matlab.net.http.AuthInfo(pStruct)pStruct 的字段中复制参数和值。

obj = matlab.net.http.AuthInfo(pStr) 基于 pStr 创建一个 AuthInfo

输入参数

全部展开

参数名称,指定为字符串或字符向量。Web 服务定义作为请求的一部分而被接受的 paramName,paramValue 对组。paramName 实参代表当您将 AuthInfo 对象转换为字符串时而转换为 name=value 形参的参数。

数据类型: char | string

参数值,指定为 paramName 需要的类型。paramValue 的类型没有限制,但值必须支持 stringchar 方法。

参数和值,指定为 MATLAB 结构体中的字段。该结构体应有至少一个 Scheme 字段。MATLAB 忽略空值字段。

数据类型: struct

参数和值,指定为字符串。对于 pStr 语法:

  • 如果 pStr 是凭据或质询,请参阅 RFC 7235 Authentication section 2.1。

  • 如果 pStr 是 Authentication-Info 标头中的 auth-info,请参阅 RFC 2617 Host-Imp Interface section 3.2.3。

pStr 使用以下格式之一。值可以选择用引号引起来,并根据需要插入转义字符。

SCHEME token
SCHEME param1=value1, param2=value2, ...
param1=value1, param2=value2, ...

数据类型: string

属性

全部展开

身份验证方案,指定为 matlab.net.http.AuthenticationScheme 对象或为方案命名的字符串。

  • 如果 Scheme 是字符串,则 MATLAB 会尝试将其转换为 AuthenticationScheme 枚举。MATLAB 不对数值小于 0 的 Scheme 进行特殊处理。

  • 如果 AuthInfo 对象是 AuthenticateField 标头字段中的质询,而且 Scheme 不是 AuthenticationScheme 枚举,则 Scheme 是一个字符串。否则,SchemeAuthenticationScheme 对象。

  • 如果 AuthInfo 位于 AuthorizationField 标头字段中,则 SchemeAuthenticationScheme 对象。

  • 如果 AuthInfo 位于 AuthenticationInfoField 标头字段中,则 Scheme 可能为空。

属性:

GetAccess
public
SetAccess
public

参数名称和值,以 n×2 元胞数组形式指定。Parameters{i,1} 是第 i 个参数的名称,并且是一个字符串。Parameters{i,2} 是它的值。类型取决于参数。要获取或设置此属性,请使用 getParametersetParameter 方法。

Parameters 属性取决于标头字段中的 Scheme 属性以及 Scheme 后面的特性。参数名称匹配不区分大小写。使用 addParametersetParameterremoveParameter 方法访问 Parameters 数组中的值。

某些参数属性具有特殊的含义和语法,MATLAB 根据 Scheme 强制遵循这些要求。具有特殊含义的参数如下所示。其他所有参数都是 string 对象。

  • 如果 SchemeAuthenticationScheme.Basic,则需要一个参数。

    • AuthenticateField(来自服务器的质询)中,属性名称为 realm。服务器提供用户提示的范围,它与 Credentials.Realm 属性匹配。AuthenticateField.convert 方法返回的 AuthInfo 始终有一个范围参数。

    • AuthorizationField(客户端响应中的凭据)中,属性名称为 encodedEncoded 属性是一个采用 base64 编码的字符序列,代表标头字段中出现在 Scheme 后面的用户名和密码。如果您设置此参数,则必须使用 base64encode 函数自行编码。

  • 如果 SchemeAuthenticationScheme.Digest,则属性的数量是可变的,并且对应于标头字段中的 name=value 特性。

    • 对于 AuthenticateField,请参阅 RFC 2617 Host-Imp Interface section 3.2.1 中列出的属性。

    • 对于 AuthorizationField,请参阅 RFC 2617 Host-Imp Interface section 3.2.2 中列出的属性。

  • 如果 Scheme 是任何其他 AuthenticationScheme 属性或字符串,则所有属性名称和值都可以接受,只要它们可以转换为字符串即可。

属性:

GetAccess
public
SetAccess
public
Dependent
true

方法

全部展开

版本历史记录

在 R2016b 中推出