Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

65 lines
2.9 KiB
C#

//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Security
{
using System;
using System.ServiceModel.Diagnostics;
using System.ServiceModel.Channels;
using System.Xml;
using System.Diagnostics;
using System.IdentityModel.Protocols.WSTrust;
/// <summary>
/// Defines a Body Writer that writes out a RequestSecurityToken into an XmlDictionaryWriter.
/// </summary>
public class WSTrustRequestBodyWriter : BodyWriter
{
WSTrustSerializationContext _serializationContext;
System.IdentityModel.Protocols.WSTrust.RequestSecurityToken _requestSecurityToken;
WSTrustRequestSerializer _serializer;
/// <summary>
/// Constructor for the WSTrustRequestBodyWriter.
/// </summary>
/// <param name="requestSecurityToken">The RequestSecurityToken object to be serialized in the outgoing Message.</param>
/// <param name="serializer">Serializer is responsible for writting the requestSecurityToken into a XmlDictionaryWritter.</param>
/// <param name="serializationContext">Context for the serialization.</param>
/// <exception cref="ArgumentNullException">The 'requestSecurityToken' is null.</exception>
/// <exception cref="ArgumentNullException">The 'serializer' is null.</exception>
/// <exception cref="ArgumentNullException">The 'serializationContext' is null.</exception>
public WSTrustRequestBodyWriter(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken requestSecurityToken, WSTrustRequestSerializer serializer, WSTrustSerializationContext serializationContext)
: base(true)
{
if (requestSecurityToken == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestSecurityToken");
}
if (serializer == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serializer");
}
if (serializationContext == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serializationContext");
}
_requestSecurityToken = requestSecurityToken;
_serializer = serializer;
_serializationContext = serializationContext;
}
/// <summary>
/// Override of the base class method. Serializes the requestSecurityToken to the outgoing stream.
/// </summary>
/// <param name="writer">Writer into which the requestSecurityToken should be written.</param>
protected override void OnWriteBodyContents(XmlDictionaryWriter writer)
{
_serializer.WriteXml(_requestSecurityToken, writer, _serializationContext);
}
}
}