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
- TypeLoadException.cs
- ClientRoleProvider.cs
- ParameterModifier.cs
- ThreadAbortException.cs
- ExpressionLexer.cs
- TypeSystem.cs
- RtfControlWordInfo.cs
- GeneratedCodeAttribute.cs
- DrawListViewSubItemEventArgs.cs
- SrgsElementList.cs
- SecureUICommand.cs
- ToolStripSplitStackLayout.cs
- DesignUtil.cs
- SymmetricCryptoHandle.cs
- TriggerBase.cs
- GradientStop.cs
- autovalidator.cs
- AffineTransform3D.cs
- Image.cs
- SoapFormatExtensions.cs
- ListSourceHelper.cs
- Pkcs9Attribute.cs
- TabItemAutomationPeer.cs
- EntityDataSourceQueryBuilder.cs
- ProviderSettingsCollection.cs
- RadioButtonPopupAdapter.cs
- XhtmlConformanceSection.cs
- bindurihelper.cs
- RemoveStoryboard.cs
- XamlToRtfWriter.cs
- HttpCookiesSection.cs
- TextBox.cs
- LayoutInformation.cs
- QuaternionIndependentAnimationStorage.cs
- PeerEndPoint.cs
- TransactionScope.cs
- BamlTreeMap.cs
- SoapParser.cs
- SafeNativeMethods.cs
- Helper.cs
- PngBitmapEncoder.cs
- SQLDecimalStorage.cs
- InplaceBitmapMetadataWriter.cs
- TrackBar.cs
- WindowsRichEdit.cs
- basemetadatamappingvisitor.cs
- sqlmetadatafactory.cs
- TemplateBamlTreeBuilder.cs
- ProtocolsConfigurationHandler.cs
- DoubleUtil.cs
- JavaScriptObjectDeserializer.cs
- RuleSettingsCollection.cs
- ZoneIdentityPermission.cs
- Parameter.cs
- QuinticEase.cs
- HtmlEmptyTagControlBuilder.cs
- LicFileLicenseProvider.cs
- AxWrapperGen.cs
- MTConfigUtil.cs
- DataGridViewComboBoxColumn.cs
- XmlDataCollection.cs
- GridViewPageEventArgs.cs
- GlyphRunDrawing.cs
- XmlElementAttributes.cs
- ColorTransform.cs
- EntityContainerEmitter.cs
- ConfigXmlAttribute.cs
- QilGeneratorEnv.cs
- SmiEventSink_DeferedProcessing.cs
- TabletDevice.cs
- ServicePoint.cs
- BitArray.cs
- XmlTextReader.cs
- EventBookmark.cs
- BindToObject.cs
- SchemaImporter.cs
- RegionIterator.cs
- LoaderAllocator.cs
- autovalidator.cs
- ResourceProviderFactory.cs
- ZipIOModeEnforcingStream.cs
- MultitargetingHelpers.cs
- XamlFilter.cs
- SystemSounds.cs
- TextEditorTyping.cs
- ScalarOps.cs
- SendKeys.cs
- NoneExcludedImageIndexConverter.cs
- AspCompat.cs
- WebPartConnection.cs
- XmlReaderSettings.cs
- FutureFactory.cs
- WebExceptionStatus.cs
- PerformanceCounterManager.cs
- MonitorWrapper.cs
- Cursor.cs
- WindowsContainer.cs
- InvalidOperationException.cs
- SiblingIterators.cs
- ItemCollection.cs