Так что мне нужно сериализовать токен для отправки службе через очередь + NetMessageBinding в Azure. Маркер приходит от ACS и после некоторого jiggery pokery У меня есть Saml2SecurityToken и я могу записать его в строку:Почему Saml2SecurityHandler не создает токен, используя ReadToken из строки, которую я только что создал с помощью WriteToken?
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());
}
однако, если я затем попытаться воссоздать Saml2SecurityToken из tokenString
так:
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 в другую службу?