70 lines
2.6 KiB
C#
70 lines
2.6 KiB
C#
|
//------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------
|
||
|
|
||
|
namespace System.ServiceModel.Security
|
||
|
{
|
||
|
using System.ComponentModel;
|
||
|
|
||
|
public enum SecurityTokenAttachmentMode
|
||
|
{
|
||
|
Signed,
|
||
|
Endorsing,
|
||
|
SignedEndorsing,
|
||
|
SignedEncrypted
|
||
|
}
|
||
|
|
||
|
static class SecurityTokenAttachmentModeHelper
|
||
|
{
|
||
|
internal static bool IsDefined(SecurityTokenAttachmentMode value)
|
||
|
{
|
||
|
return value == SecurityTokenAttachmentMode.Endorsing
|
||
|
|| value == SecurityTokenAttachmentMode.Signed
|
||
|
|| value == SecurityTokenAttachmentMode.SignedEncrypted
|
||
|
|| value == SecurityTokenAttachmentMode.SignedEndorsing;
|
||
|
}
|
||
|
|
||
|
internal static void Validate(SecurityTokenAttachmentMode value)
|
||
|
{
|
||
|
if (!IsDefined(value))
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidEnumArgumentException("value", (int)value,
|
||
|
typeof(SecurityTokenAttachmentMode)));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal static void Categorize(SecurityTokenAttachmentMode value,
|
||
|
out bool isBasic, out bool isSignedButNotBasic, out ReceiveSecurityHeaderBindingModes mode)
|
||
|
{
|
||
|
|
||
|
SecurityTokenAttachmentModeHelper.Validate(value);
|
||
|
|
||
|
switch (value)
|
||
|
{
|
||
|
case SecurityTokenAttachmentMode.Endorsing:
|
||
|
isBasic = false;
|
||
|
isSignedButNotBasic = false;
|
||
|
mode = ReceiveSecurityHeaderBindingModes.Endorsing;
|
||
|
break;
|
||
|
case SecurityTokenAttachmentMode.Signed:
|
||
|
isBasic = false;
|
||
|
isSignedButNotBasic = true;
|
||
|
mode = ReceiveSecurityHeaderBindingModes.Signed;
|
||
|
break;
|
||
|
case SecurityTokenAttachmentMode.SignedEncrypted:
|
||
|
isBasic = true;
|
||
|
isSignedButNotBasic = false;
|
||
|
mode = ReceiveSecurityHeaderBindingModes.Basic;
|
||
|
break;
|
||
|
case SecurityTokenAttachmentMode.SignedEndorsing:
|
||
|
isBasic = false;
|
||
|
isSignedButNotBasic = true;
|
||
|
mode = ReceiveSecurityHeaderBindingModes.SignedEndorsing;
|
||
|
break;
|
||
|
default:
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|