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
- WMIInterop.cs
- ParamArrayAttribute.cs
- ParameterElementCollection.cs
- XmlSchemaImporter.cs
- WorkflowServiceHost.cs
- ResumeStoryboard.cs
- FixedNode.cs
- OrderedDictionaryStateHelper.cs
- DataKey.cs
- ListControl.cs
- ListDictionaryInternal.cs
- UrlPath.cs
- ISFTagAndGuidCache.cs
- SharedPerformanceCounter.cs
- Coordinator.cs
- ToolStripPanel.cs
- DragDrop.cs
- SQLCharsStorage.cs
- CodeArrayCreateExpression.cs
- RectAnimationBase.cs
- QilCloneVisitor.cs
- BindingList.cs
- EdmPropertyAttribute.cs
- BufferedGraphicsContext.cs
- TextBoxRenderer.cs
- Variant.cs
- _RequestLifetimeSetter.cs
- XmlSerializerVersionAttribute.cs
- DbConnectionOptions.cs
- VideoDrawing.cs
- SqlTriggerContext.cs
- ExtendedProtectionPolicyElement.cs
- LinqDataSourceDeleteEventArgs.cs
- CalloutQueueItem.cs
- ColumnBinding.cs
- PathSegment.cs
- ChannelManager.cs
- ADMembershipUser.cs
- CustomAttributeBuilder.cs
- ContainerControl.cs
- _UriSyntax.cs
- RowTypeElement.cs
- WindowsListViewGroupSubsetLink.cs
- SystemIPAddressInformation.cs
- FontUnit.cs
- Paragraph.cs
- StylusCaptureWithinProperty.cs
- HwndStylusInputProvider.cs
- ComEventsHelper.cs
- RuntimeIdentifierPropertyAttribute.cs
- GPStream.cs
- DuplexChannel.cs
- CurrentTimeZone.cs
- hresults.cs
- OpenTypeLayoutCache.cs
- RoutedPropertyChangedEventArgs.cs
- DateTimeSerializationSection.cs
- Exceptions.cs
- PropagatorResult.cs
- SortAction.cs
- LeaseManager.cs
- UInt32.cs
- TypeToStringValueConverter.cs
- AuthenticationManager.cs
- HierarchicalDataSourceConverter.cs
- SqlVisitor.cs
- EntitySetDataBindingList.cs
- DataGridViewButtonCell.cs
- OleDbEnumerator.cs
- XPathItem.cs
- XPathSingletonIterator.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- HostProtectionException.cs
- DecimalAnimationUsingKeyFrames.cs
- RelationshipWrapper.cs
- DataRowView.cs
- Italic.cs
- HttpRequestCacheValidator.cs
- FloaterParaClient.cs
- MimeFormImporter.cs
- RunWorkerCompletedEventArgs.cs
- ACL.cs
- ManagedIStream.cs
- BindingContext.cs
- DataListCommandEventArgs.cs
- CodeGroup.cs
- KeyConstraint.cs
- OAVariantLib.cs
- SafeCryptoHandles.cs
- SizeAnimationUsingKeyFrames.cs
- DocumentPageViewAutomationPeer.cs
- XmlSchemaAnyAttribute.cs
- BasePropertyDescriptor.cs
- CodeDirectionExpression.cs
- ServerTooBusyException.cs
- Int32Storage.cs
- Debugger.cs
- Marshal.cs
- PolyBezierSegmentFigureLogic.cs
- ServiceOperationParameter.cs