| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel.Security
- {
- using System.Collections.ObjectModel;
- using System.ServiceModel.Channels;
- using System.ServiceModel;
- using System.Runtime.Serialization;
- using System.IdentityModel.Tokens;
- using System.IdentityModel.Selectors;
-
- sealed class MessageSecurityTokenVersion : SecurityTokenVersion
- {
- SecurityVersion securityVersion;
- TrustVersion trustVersion;
- SecureConversationVersion secureConversationVersion;
- bool emitBspRequiredAttributes;
- string toString;
- ReadOnlyCollection<string> supportedSpecs;
- const string bsp10ns = @"http://ws-i.org/profiles/basic-security/core/1.0";
- static MessageSecurityTokenVersion wss11 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity11,
- TrustVersion.WSTrustFeb2005,
- SecureConversationVersion.WSSecureConversationFeb2005,
- "WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005",
- false,
- XD.SecurityXXX2005Dictionary.Namespace.Value,
- XD.TrustFeb2005Dictionary.Namespace.Value,
- XD.SecureConversationFeb2005Dictionary.Namespace.Value);
- static MessageSecurityTokenVersion wss10bsp10 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity10,
- TrustVersion.WSTrustFeb2005,
- SecureConversationVersion.WSSecureConversationFeb2005,
- "WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10",
- true,
- XD.SecurityJan2004Dictionary.Namespace.Value,
- XD.TrustFeb2005Dictionary.Namespace.Value,
- XD.SecureConversationFeb2005Dictionary.Namespace.Value,
- bsp10ns);
- static MessageSecurityTokenVersion wss11bsp10 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity11,
- TrustVersion.WSTrustFeb2005,
- SecureConversationVersion.WSSecureConversationFeb2005,
- "WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10",
- true,
- XD.SecurityXXX2005Dictionary.Namespace.Value,
- XD.TrustFeb2005Dictionary.Namespace.Value,
- XD.SecureConversationFeb2005Dictionary.Namespace.Value,
- bsp10ns);
- static MessageSecurityTokenVersion wss10oasisdec2005bsp10 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity10,
- TrustVersion.WSTrust13,
- SecureConversationVersion.WSSecureConversation13,
- "WSSecurity10WSTrust13WSSecureConversation13BasicSecurityProfile10",
- true,
- XD.SecurityXXX2005Dictionary.Namespace.Value,
- DXD.TrustDec2005Dictionary.Namespace.Value,
- DXD.SecureConversationDec2005Dictionary.Namespace.Value
- );
- static MessageSecurityTokenVersion wss11oasisdec2005 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity11,
- TrustVersion.WSTrust13,
- SecureConversationVersion.WSSecureConversation13,
- "WSSecurity11WSTrust13WSSecureConversation13",
- false,
- XD.SecurityJan2004Dictionary.Namespace.Value,
- DXD.TrustDec2005Dictionary.Namespace.Value,
- DXD.SecureConversationDec2005Dictionary.Namespace.Value
- );
- static MessageSecurityTokenVersion wss11oasisdec2005bsp10 = new MessageSecurityTokenVersion(
- SecurityVersion.WSSecurity11,
- TrustVersion.WSTrust13,
- SecureConversationVersion.WSSecureConversation13,
- "WSSecurity11WSTrust13WSSecureConversation13BasicSecurityProfile10",
- true,
- XD.SecurityXXX2005Dictionary.Namespace.Value,
- DXD.TrustDec2005Dictionary.Namespace.Value,
- DXD.SecureConversationDec2005Dictionary.Namespace.Value
- );
- public static MessageSecurityTokenVersion WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005
- {
- get
- {
- return wss11;
- }
- }
- public static MessageSecurityTokenVersion WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10
- {
- get
- {
- return wss11bsp10;
- }
- }
- public static MessageSecurityTokenVersion WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10
- {
- get
- {
- return wss10bsp10;
- }
- }
- public static MessageSecurityTokenVersion WSSecurity10WSTrust13WSSecureConversation13BasicSecurityProfile10
- {
- get
- {
- return wss10oasisdec2005bsp10;
- }
- }
- public static MessageSecurityTokenVersion WSSecurity11WSTrust13WSSecureConversation13
- {
- get
- {
- return wss11oasisdec2005;
- }
- }
- public static MessageSecurityTokenVersion WSSecurity11WSTrust13WSSecureConversation13BasicSecurityProfile10
- {
- get
- {
- return wss11oasisdec2005bsp10;
- }
- }
- public static MessageSecurityTokenVersion GetSecurityTokenVersion(SecurityVersion version, bool emitBspAttributes)
- {
- if (version == SecurityVersion.WSSecurity10)
- {
- if (emitBspAttributes)
- return MessageSecurityTokenVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10;
- else
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
- }
- else if (version == SecurityVersion.WSSecurity11)
- {
- if (emitBspAttributes)
- return MessageSecurityTokenVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005BasicSecurityProfile10;
- else
- return MessageSecurityTokenVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005;
- }
- else
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
- }
- }
- MessageSecurityTokenVersion(SecurityVersion securityVersion, TrustVersion trustVersion, SecureConversationVersion secureConversationVersion, string toString, bool emitBspRequiredAttributes, params string[] supportedSpecs)
- : base()
- {
- this.emitBspRequiredAttributes = emitBspRequiredAttributes;
- this.supportedSpecs = new ReadOnlyCollection<string>(supportedSpecs);
- this.toString = toString;
- this.securityVersion = securityVersion;
- this.trustVersion = trustVersion;
- this.secureConversationVersion = secureConversationVersion;
- }
- public bool EmitBspRequiredAttributes
- {
- get
- {
- return this.emitBspRequiredAttributes;
- }
- }
- public SecurityVersion SecurityVersion
- {
- get
- {
- return this.securityVersion;
- }
- }
- public TrustVersion TrustVersion
- {
- get
- {
- return this.trustVersion;
- }
- }
- public SecureConversationVersion SecureConversationVersion
- {
- get
- {
- return this.secureConversationVersion;
- }
- }
- public override ReadOnlyCollection<string> GetSecuritySpecifications()
- {
- return supportedSpecs;
- }
- public override string ToString()
- {
- return this.toString;
- }
- }
- }
|