Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / InfoCardConstants.cs / 1 / InfoCardConstants.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IdentityModel.Claims; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; using Microsoft.Win32; // // Summary: // This class contains the dictionary for the claims associated with the // infocards. // internal static class InfoCardConstants { // // Indigo message limits, managed through the registry. // private static int s_maxMessageSize; private static int s_maxMexChainLength; private const int DEFAULT_MAX_MESSAGE_SIZE = 20 * 1024 * 1024; // in bytes private const int DEFAULT_MAX_MEX_CHAIN = 100; private const string MAX_MESSAGE_KEY = "MaximumMessageSize"; private const string MAX_MEX_CHAIN = "MaximumMexChain"; private const string INFOCARD_REGISTRY_KEY = @"software\microsoft\infocard"; static public int MaximumMessageSize { get { return s_maxMessageSize; } } static public int MaximumMexChainLength { get { return s_maxMexChainLength; } } static public string RegistryKey { get { return INFOCARD_REGISTRY_KEY; } } static public string GivenName { get { return ClaimTypes.GivenName; } } static public string EmailAddress { get { return ClaimTypes.Email; } } static public string Surname { get { return ClaimTypes.Surname; } } static public string StreetAddress { get { return ClaimTypes.StreetAddress; } } static public string Locality { get { return ClaimTypes.Locality; } } static public string StateOrProvince { get { return ClaimTypes.StateOrProvince; } } /* SSS_WARNINGS_OFF */ static public string PostalCode { get { return ClaimTypes.PostalCode; } } static public string Country { get { return ClaimTypes.Country; } } /* SSS_WARNINGS_ON */ static public string HomePhone { get { return ClaimTypes.HomePhone; } } static public string OtherPhone { get { return ClaimTypes.OtherPhone; } } static public string MobilePhone { get { return ClaimTypes.MobilePhone; } } static public string DateOfBirth { get { return ClaimTypes.DateOfBirth; } } static public string Gender { get { return ClaimTypes.Gender; } } static public string PPID { get { return ClaimTypes.PPID; } } static public string Webpage{ get { return ClaimTypes.Webpage; } } private static string[ ] s_SelfIssuedClaims = { GivenName, Surname, EmailAddress, StreetAddress, Locality, StateOrProvince, /* SSS_WARNINGS_OFF */ PostalCode, Country, /* SSS_WARNINGS_ON */ HomePhone, OtherPhone, MobilePhone, DateOfBirth, Gender, Webpage }; private static Dictionarys_claimDisplayTags = new Dictionary (); private static Dictionary s_claimDescription = new Dictionary (); /* SSS_WARNINGS_OFF */ private static XmlDictionaryReaderQuotas s_defaultQuotas = new XmlDictionaryReaderQuotas(); private static List s_localTokenFactoryWhiteList = new List (); /* SSS_WARNINGS_ON */ private static List s_policyElementsToBeProcessed = new List (); // // Summary // Checks if the input values are in the list that the local token factory supports // // Parameters // nameSpaceValue - NameSpace for the xml element // value -the xml element name // /* SSS_WARNINGS_OFF */ public static bool DoesLocalTokenFactoryWhiteListContain( string nameSpaceValue, string value ) { return s_localTokenFactoryWhiteList.Contains( nameSpaceValue + "/" + value ); /* SSS_WARNINGS_ON */ } // // Summary // Checks if the input values are in the list of elements that infocard processes // // Parameters // nameSpaceValue - NameSpace for the xml element // value -the xml element name // public static bool DoesPolicyElementsToBeProcessedListContain( string nameSpaceValue, string value ) { return s_policyElementsToBeProcessed.Contains( nameSpaceValue + "/" + value ); } public static XmlDictionaryReaderQuotas DefaultQuotas { get { return s_defaultQuotas; } } public static string[ ] SelfIssuedClaimsUris { get { return s_SelfIssuedClaims; } } public static string PPIDClaimsUri { get { return PPID; } } public static string ClaimDisplayTag( string key ) { string displayTag = null; if( s_claimDisplayTags.ContainsKey( key ) ) { displayTag = SR.GetString( s_claimDisplayTags[ key ] ); } else { throw IDT.ThrowHelperWarning( new ArgumentOutOfRangeException( SR.GetString( SR.InvalidSelfIssuedUri ) ) ); } return displayTag; } public static string ClaimsDescription( string key ) { string description = null; if( s_claimDescription.ContainsKey( key ) ) { description = SR.GetString( s_claimDescription[ key ] ); } else { throw IDT.ThrowHelperWarning( new ArgumentOutOfRangeException( SR.GetString( SR.InvalidSelfIssuedUri ) ) ); } return description; } static InfoCardConstants() { s_claimDisplayTags.Add( GivenName, SR.GivenNameText ); /* SSS_WARNINGS_OFF */ s_claimDisplayTags.Add( EmailAddress, SR.EmailAddressText ); s_claimDisplayTags.Add( Country, SR.CountryText ); /* SSS_WARNINGS_ON */ s_claimDisplayTags.Add( DateOfBirth, SR.DateOfBirthText ); s_claimDisplayTags.Add( Gender, SR.GenderText); s_claimDisplayTags.Add( HomePhone, SR.HomePhoneText ); s_claimDisplayTags.Add( Locality, SR.LocalityText ); s_claimDisplayTags.Add( MobilePhone, SR.MobilePhoneText ); s_claimDisplayTags.Add( OtherPhone, SR.OtherPhoneText ); s_claimDisplayTags.Add( PostalCode, SR.PostalCodeText ); s_claimDisplayTags.Add( StateOrProvince, SR.StateOrProvinceText ); s_claimDisplayTags.Add( StreetAddress, SR.StreetAddressText ); s_claimDisplayTags.Add( Surname, SR.SurnameText ); s_claimDisplayTags.Add( PPID, SR.PPIDText ); s_claimDisplayTags.Add( Webpage, SR.WebPageText ); s_claimDescription.Add( GivenName, SR.GivenNameDescription ); /* SSS_WARNINGS_OFF */ s_claimDescription.Add( EmailAddress, SR.EmailAddressDescription ); s_claimDescription.Add( Country, SR.CountryDescription ); /* SSS_WARNINGS_ON */ s_claimDescription.Add( DateOfBirth, SR.DateOfBirthDescription ); s_claimDescription.Add( Gender, SR.GenderDescription ); s_claimDescription.Add( HomePhone, SR.HomePhoneDescription ); s_claimDescription.Add( Locality, SR.LocalityDescription ); s_claimDescription.Add( MobilePhone, SR.MobilePhoneDescription ); s_claimDescription.Add( OtherPhone, SR.OtherPhoneDescription ); s_claimDescription.Add( PostalCode, SR.PostalCodeDescription ); s_claimDescription.Add( StateOrProvince, SR.StateOrProvinceDescription ); s_claimDescription.Add( StreetAddress, SR.StreetAddressDescription ); s_claimDescription.Add( Surname, SR.SurnameDescription ); s_claimDescription.Add( PPID, SR.PPIDDescription ); s_claimDescription.Add( Webpage, SR.WebPageDescription ); // // Quotas for xml readers // s_defaultQuotas.MaxDepth = 32; // max depth of elements s_defaultQuotas.MaxStringContentLength = 8192; // maximum string read s_defaultQuotas.MaxArrayLength = 20 * 1024 * 1024; // maximum byte array s_defaultQuotas.MaxBytesPerRead = 4096; // max start element tag s_defaultQuotas.MaxNameTableCharCount = 16384; // max size of name table // // Message limits // s_maxMessageSize = DEFAULT_MAX_MESSAGE_SIZE; s_maxMexChainLength = DEFAULT_MAX_MEX_CHAIN; using( SystemIdentity system = new SystemIdentity( false ) ) { using( RegistryKey rk = Registry.LocalMachine.OpenSubKey( INFOCARD_REGISTRY_KEY, false ) ) { if( null != rk ) { object maxMessage = rk.GetValue( MAX_MESSAGE_KEY, DEFAULT_MAX_MESSAGE_SIZE ); // // Registry is in kbs. Indigo properties in bytes // if( maxMessage is int && (int)maxMessage > 0 && (int)maxMessage * 1024 > 0 ) { s_maxMessageSize = (int) maxMessage * 1024; } object maxHops = rk.GetValue( MAX_MEX_CHAIN, DEFAULT_MAX_MEX_CHAIN ); if( maxHops is int && (int)maxHops > 0 ) { s_maxMexChainLength = (int) maxHops; } } } } // // Add the allowed elements from WSTrust Feb 2005 // /* SSS_WARNINGS_OFF */ s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_SignatureAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_EncryptionAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_CanonicalizationAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_SignWith ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_ClaimsElement ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_TokenType ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_KeyType ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_KeySize ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_EncryptWith ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustXmlSoap2005.c_Namespace + "/" + XmlNames.WSTrustXmlSoap2005.c_RequestType ); // // Add the allowed elements from WSTrust Oasis 2007 (1.3) // s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_SignatureAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_EncryptionAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_CanonicalizationAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_SignWith ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_ClaimsElement ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_TokenType ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_KeyType ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_KeySize ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_EncryptWith ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_RequestType ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_SecondaryParameters ); s_localTokenFactoryWhiteList.Add( XmlNames.WSTrustOasis2007.c_Namespace + "/" + XmlNames.WSTrustOasis2007.c_KeyWrapAlgorithm ); s_localTokenFactoryWhiteList.Add( XmlNames.WSSecurityPolicyXmlSoap2005.c_Namespace + "/" + XmlNames.WSSecurityPolicyXmlSoap2005.c_RequestSecurityTokenTemplate ); s_localTokenFactoryWhiteList.Add( XmlNames.WSSecurityPolicyOasis2007.c_Namespace + "/" + XmlNames.WSSecurityPolicyOasis2007.c_RequestSecurityTokenTemplate ); s_policyElementsToBeProcessed.AddRange( s_localTokenFactoryWhiteList ); /* SSS_WARNINGS_ON */ s_policyElementsToBeProcessed.Add( XmlNames.WSPolicyXmlSoap2004.c_Namespace + "/" + XmlNames.WSPolicyXmlSoap2004.c_AppliesTo ); s_policyElementsToBeProcessed.Add( XmlNames.WSPolicyW32007.c_Namespace + "/" + XmlNames.WSPolicyW32007.c_AppliesTo ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemIPGlobalProperties.cs
- Expressions.cs
- XmlAtomicValue.cs
- ListSurrogate.cs
- contentDescriptor.cs
- XmlSchemaException.cs
- BitConverter.cs
- Int32EqualityComparer.cs
- ContextMenu.cs
- PrinterSettings.cs
- MasterPageBuildProvider.cs
- RIPEMD160.cs
- ShaderRenderModeValidation.cs
- SmtpFailedRecipientsException.cs
- Ref.cs
- AddInServer.cs
- EntityDataSourceChangingEventArgs.cs
- sqlser.cs
- StreamReader.cs
- DecimalKeyFrameCollection.cs
- basecomparevalidator.cs
- OracleDateTime.cs
- TypeSystem.cs
- ExpandableObjectConverter.cs
- BasePropertyDescriptor.cs
- Emitter.cs
- SaveWorkflowCommand.cs
- ComPlusSynchronizationContext.cs
- Command.cs
- ConstraintStruct.cs
- Parser.cs
- BaseTemplatedMobileComponentEditor.cs
- RefreshPropertiesAttribute.cs
- PlatformNotSupportedException.cs
- PrimitiveDataContract.cs
- DataServiceCollectionOfT.cs
- HtmlContainerControl.cs
- SystemFonts.cs
- ChangeDirector.cs
- InheritedPropertyChangedEventArgs.cs
- TextParagraphCache.cs
- ContextStaticAttribute.cs
- ConfigurationSchemaErrors.cs
- HtmlHead.cs
- QueryReaderSettings.cs
- XmlBaseReader.cs
- SqlTypeConverter.cs
- KeyTime.cs
- CommandEventArgs.cs
- XsltOutput.cs
- DataTableClearEvent.cs
- QuaternionRotation3D.cs
- ViewEventArgs.cs
- Container.cs
- XmlCDATASection.cs
- SqlClientWrapperSmiStreamChars.cs
- CodeTypeMemberCollection.cs
- MasterPageBuildProvider.cs
- ResourcePool.cs
- DataTablePropertyDescriptor.cs
- ThicknessAnimation.cs
- MenuItem.cs
- XmlBaseReader.cs
- DynamicQueryableWrapper.cs
- SecurityToken.cs
- TypeListConverter.cs
- NameTable.cs
- MatchAttribute.cs
- ImageAttributes.cs
- shaperfactoryquerycachekey.cs
- WindowsListViewGroupHelper.cs
- ExtendedProtectionPolicy.cs
- QueryOperatorEnumerator.cs
- Encoding.cs
- ListBindingConverter.cs
- EventProviderWriter.cs
- LifetimeServices.cs
- XmlNodeChangedEventManager.cs
- BindingsCollection.cs
- HGlobalSafeHandle.cs
- securestring.cs
- XPathSelectionIterator.cs
- ValueExpressions.cs
- ComboBox.cs
- ObjectDataSourceEventArgs.cs
- ColorComboBox.cs
- LinqToSqlWrapper.cs
- WebMessageEncoderFactory.cs
- FileDialog.cs
- Control.cs
- ObjectTag.cs
- GuidConverter.cs
- UserPreferenceChangedEventArgs.cs
- DataGridParentRows.cs
- ModulesEntry.cs
- SchemaImporterExtensionElementCollection.cs
- Constraint.cs
- ListBindingHelper.cs
- TraceSection.cs
- ObjectStateManager.cs