Skip to content

Commit ba71500

Browse files
committed
Add UserNameSecurityToken to public api's
1 parent 846ab26 commit ba71500

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

src/System.ServiceModel.Http/src/System/ServiceModel/Channels/HttpChannelFactory.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,7 @@ public async Task SendRequestAsync(Message message, TimeoutHelper timeoutHelper)
10381038
{
10391039
// For MTOM messages, add a MIME version header
10401040
AddMimeVersion("1.0");
1041+
request.Properties.Add("System.ServiceModel.Channel.MtomMessageEncoder.WriteMessageHeaders", false);
10411042
}
10421043

10431044
}

src/System.ServiceModel.Primitives/ref/System.ServiceModel.Security.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,17 @@ public SecurityTokenValidationException(string message) { }
475475
public SecurityTokenValidationException(string message, System.Exception innerException) { }
476476
protected SecurityTokenValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
477477
}
478+
public partial class UserNameSecurityToken : SecurityToken
479+
{
480+
public UserNameSecurityToken(string userName, string password) { }
481+
public UserNameSecurityToken(string userName, string password, string id) { }
482+
public override string Id => default;
483+
public override System.Collections.ObjectModel.ReadOnlyCollection<SecurityKey> SecurityKeys => default;
484+
public override DateTime ValidFrom => default;
485+
public override DateTime ValidTo => default;
486+
public string UserName => default;
487+
public string Password => default;
488+
}
478489
public partial class X509SecurityToken : SecurityToken, IDisposable
479490
{
480491
public X509SecurityToken(System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { }

src/System.ServiceModel.Primitives/src/System/ServiceModel/Channels/MtomMessageEncoder.cs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -423,12 +423,12 @@ public override Message ReadMessage(Stream stream, int maxSizeOfHeaders, string
423423

424424
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
425425
{
426-
return WriteMessageInternal(message, maxMessageSize, bufferManager, messageOffset, GenerateStartInfoString(), _boundary, MtomStartUri, writeMessageHeaders: false);
426+
return WriteMessageInternal(message, maxMessageSize, bufferManager, messageOffset, GenerateStartInfoString(), _boundary, MtomStartUri);
427427
}
428428

429429
public override ValueTask<ArraySegment<byte>> WriteMessageAsync(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
430430
{
431-
return new ValueTask<ArraySegment<byte>>(WriteMessageInternal(message, maxMessageSize, bufferManager, messageOffset, GenerateStartInfoString(), _boundary, MtomStartUri, writeMessageHeaders: false));
431+
return new ValueTask<ArraySegment<byte>>(WriteMessageInternal(message, maxMessageSize, bufferManager, messageOffset, GenerateStartInfoString(), _boundary, MtomStartUri));
432432
}
433433

434434
private string GetContentType(out string boundary)
@@ -446,8 +446,14 @@ internal string FormatContentType(string boundary, string startInfo)
446446
MtomContentType, MtomStartUri, boundary, startInfo);
447447
}
448448

449-
private ArraySegment<byte> WriteMessageInternal(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset, string startInfo, string boundary, string startUri, bool writeMessageHeaders)
449+
private ArraySegment<byte> WriteMessageInternal(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset, string startInfo, string boundary, string startUri)
450450
{
451+
bool writeMessageHeaders = true;
452+
if (message.Properties.TryGetValue("System.ServiceModel.Channel.MtomMessageEncoder.WriteMessageHeaders", out object boolAsObject) && boolAsObject is bool)
453+
{
454+
writeMessageHeaders = (bool)boolAsObject;
455+
}
456+
451457
if (message == null)
452458
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(message));
453459
if (bufferManager == null)
@@ -517,7 +523,7 @@ public override void WriteMessage(Message message, Stream stream)
517523

518524
public override ValueTask WriteMessageAsync(Message message, Stream stream)
519525
{
520-
return WriteMessageInternalAsync(message, stream, GenerateStartInfoString(), _boundary, MtomStartUri, writeMessageHeaders: false);
526+
return WriteMessageInternalAsync(message, stream, GenerateStartInfoString(), _boundary, MtomStartUri);
521527
}
522528

523529
public override IAsyncResult BeginWriteMessage(Message message, Stream stream, AsyncCallback callback, object state)
@@ -530,8 +536,14 @@ public override void EndWriteMessage(IAsyncResult result)
530536
result.ToApmEnd();
531537
}
532538

533-
private async ValueTask WriteMessageInternalAsync(Message message, Stream stream, string startInfo, string boundary, string startUri, bool writeMessageHeaders)
539+
private async ValueTask WriteMessageInternalAsync(Message message, Stream stream, string startInfo, string boundary, string startUri)
534540
{
541+
bool writeMessageHeaders = true;
542+
if (message.Properties.TryGetValue("System.ServiceModel.Channel.MtomMessageEncoder.WriteMessageHeaders", out object boolAsObject) && boolAsObject is bool)
543+
{
544+
writeMessageHeaders = (bool)boolAsObject;
545+
}
546+
535547
if (message == null)
536548
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException(nameof(message)));
537549
if (stream == null)

0 commit comments

Comments
 (0)