【发布时间】:2013-04-08 16:54:52
【问题描述】:
所以我需要序列化一个令牌以通过 Azure 中的队列 + NetMessageBinding 发送到服务。令牌来自 ACS,经过一番折腾后,我得到了 Saml2SecurityToken,我可以将其写入字符串:
SecurityTokenHandlerCollection handlers = SecurityTokenHandlerCollection.CreateDefaultSecurityTokenHandlerCollection();
var saml2SecurityToken = securityToken as Saml2SecurityToken;
using (var memoryStream = new MemoryStream())
{
using (var xmlWriter = new XmlTextWriter(memoryStream, Encoding.UTF8))
{
handlers.WriteToken(xmlWriter, saml2SecurityToken);
}
tokenString = Encoding.UTF8.GetString(memoryStream.GetBuffer());
}
但是,如果我随后尝试从 tokenString 重新创建 Saml2SecurityToken,如下所示:
if (tokenString != null)
{
using (var stringReader = new StringReader(tokenString))
{
using (var xmlReader = new XmlTextReader(stringReader))
{
securityToken = handlers.ReadToken(xmlReader);
}
}
}
或者如果我使用
securityToken = handlers.ReadToken(tokenString);
那么 securityToken 始终为空。
我错过了什么?如何序列化我的令牌,以便我可以通过 wcf 将其发送到另一个服务?
【问题讨论】:
标签: security serialization token access-token saml-2.0