SecurityTokenHandler.CanReadToken 方法

定义

返回指示指定标记是否可以作为由此实例处理类型标记的反序列化的值。

重载

CanReadToken(String)

返回指示指定字符串是否可以作为由此实例处理类型标记的反序列化的值。

CanReadToken(XmlReader)

返回指示由指定 XML 读取器引用的 XML 元素是否可以作为由此实例处理类型标记的读取的值。

CanReadToken(String)

返回指示指定字符串是否可以作为由此实例处理类型标记的反序列化的值。

public:
 virtual bool CanReadToken(System::String ^ tokenString);
public virtual bool CanReadToken (string tokenString);
abstract member CanReadToken : string -> bool
override this.CanReadToken : string -> bool
Public Overridable Function CanReadToken (tokenString As String) As Boolean

参数

tokenString
String

读取的标记字符串。

返回

如果 ReadToken(String) 方法可读取元素,则为 true;否则,为 false。 默认值为 false

注解

默认实现始终返回 false

如果重写此方法,则还必须重写 SecurityTokenHandler.ReadToken 方法,以提供用于反序列化令牌的逻辑。

适用于

CanReadToken(XmlReader)

返回指示由指定 XML 读取器引用的 XML 元素是否可以作为由此实例处理类型标记的读取的值。

public:
 virtual bool CanReadToken(System::Xml::XmlReader ^ reader);
public virtual bool CanReadToken (System.Xml.XmlReader reader);
abstract member CanReadToken : System.Xml.XmlReader -> bool
override this.CanReadToken : System.Xml.XmlReader -> bool
Public Overridable Function CanReadToken (reader As XmlReader) As Boolean

参数

reader
XmlReader

在开始元素上指定的 XML 读取器。 不能通过这种方法读取器前移。

返回

如果 ReadToken(XmlReader) 方法可读取元素,则为 true;否则,为 false。 默认值为 false

示例

以下代码演示如何重写 方法, CanReadToken 以确定处理程序是否可以读取令牌。 代码取自 Custom Token 示例。 此示例提供自定义类,这些类支持 (SWT) 处理简单 Web 令牌。 有关此示例和其他可用于 WIF 的示例以及下载位置的信息,请参阅 WIF 代码示例索引

/// <summary>
/// Indicates whether the current XML element can be read as a token of the type handled by this instance.
/// </summary>
/// <param name="reader">An XML reader positioned at a start element. The reader should not be advanced.</param>
/// <returns>True if the ReadToken method can the element.</returns>
public override bool CanReadToken( XmlReader reader )
{
    bool canRead = false;

    if ( reader != null )
    {
        if ( reader.IsStartElement( BinarySecurityToken)
            && ( reader.GetAttribute( ValueType ) == SimpleWebTokenConstants.ValueTypeUri ) )
        {
            canRead = true;
        }
    }

    return canRead;
}

注解

默认实现始终返回 false

派生类检查读取器引用的元素,以确定实例是否可以反序列化安全令牌。 这通常是通过调用 IsStartElement 指定了相应元素和命名空间字符串的方法来实现的。 如果重写 CanReadKeyIdentifierClause,则还必须重写 SecurityTokenHandler.ReadToken 方法或 方法, SecurityTokenHandler.ReadToken 以提供用于反序列化密钥标识符子句的逻辑。

适用于