Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Selectors / SecurityTokenRequirement.cs / 1 / SecurityTokenRequirement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Selectors { using System.Globalization; using System.Text; using System.Collections; using System.Collections.Generic; using System.IdentityModel.Tokens; public class SecurityTokenRequirement { const string Namespace = "http://schemas.microsoft.com/ws/2006/05/identitymodel/securitytokenrequirement"; const string tokenTypeProperty = Namespace + "/TokenType"; const string keyUsageProperty = Namespace + "/KeyUsage"; const string keyTypeProperty = Namespace + "/KeyType"; const string keySizeProperty = Namespace + "/KeySize"; const string requireCryptographicTokenProperty = Namespace + "/RequireCryptographicToken"; const string peerAuthenticationMode = Namespace + "/PeerAuthenticationMode"; const bool defaultRequireCryptographicToken = false; const SecurityKeyUsage defaultKeyUsage = SecurityKeyUsage.Signature; const SecurityKeyType defaultKeyType = SecurityKeyType.SymmetricKey; const int defaultKeySize = 0; Dictionaryproperties; public SecurityTokenRequirement() { properties = new Dictionary (); this.Initialize(); } static public string TokenTypeProperty { get { return tokenTypeProperty; } } static public string KeyUsageProperty { get { return keyUsageProperty; } } static public string KeyTypeProperty { get { return keyTypeProperty; } } static public string KeySizeProperty { get { return keySizeProperty; } } static public string RequireCryptographicTokenProperty { get { return requireCryptographicTokenProperty; } } static public string PeerAuthenticationMode { get { return peerAuthenticationMode; } } public string TokenType { get { string result; return (this.TryGetProperty (TokenTypeProperty, out result)) ? result : null; } set { this.properties[TokenTypeProperty] = value; } } public bool RequireCryptographicToken { get { bool result; return (this.TryGetProperty (RequireCryptographicTokenProperty, out result)) ? result : defaultRequireCryptographicToken; } set { this.properties[RequireCryptographicTokenProperty] = (object)value; } } public SecurityKeyUsage KeyUsage { get { SecurityKeyUsage result; return (this.TryGetProperty (KeyUsageProperty, out result)) ? result : defaultKeyUsage; } set { SecurityKeyUsageHelper.Validate(value); this.properties[KeyUsageProperty] = (object)value; } } public SecurityKeyType KeyType { get { SecurityKeyType result; return (this.TryGetProperty (KeyTypeProperty, out result)) ? result : defaultKeyType; } set { SecurityKeyTypeHelper.Validate(value); this.properties[KeyTypeProperty] = (object)value; } } public int KeySize { get { int result; return (this.TryGetProperty (KeySizeProperty, out result)) ? result : defaultKeySize; } set { if (value < 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", SR.GetString(SR.ValueMustBeNonNegative))); } this.Properties[KeySizeProperty] = value; } } public IDictionary Properties { get { return this.properties; } } void Initialize() { this.KeyType = defaultKeyType; this.KeyUsage = defaultKeyUsage; this.RequireCryptographicToken = defaultRequireCryptographicToken; this.KeySize = defaultKeySize; } public TValue GetProperty (string propertyName) { TValue result; if (!TryGetProperty (propertyName, out result)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.SecurityTokenRequirementDoesNotContainProperty, propertyName))); } return result; } public bool TryGetProperty (string propertyName, out TValue result) { object dictionaryValue; if (!Properties.TryGetValue(propertyName, out dictionaryValue)) { result = default(TValue); return false; } if (dictionaryValue != null && !typeof(TValue).IsAssignableFrom(dictionaryValue.GetType())) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.SecurityTokenRequirementHasInvalidTypeForProperty, propertyName, dictionaryValue.GetType(), typeof(TValue)))); } result = (TValue)dictionaryValue; return true; } } } // 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
- BreakRecordTable.cs
- TraceSection.cs
- ImageAnimator.cs
- TdsParserStaticMethods.cs
- XmlCharType.cs
- DockProviderWrapper.cs
- SelectionRangeConverter.cs
- _SslState.cs
- DoubleAnimationUsingKeyFrames.cs
- CommandConverter.cs
- Encoder.cs
- FillRuleValidation.cs
- Italic.cs
- SqlUserDefinedAggregateAttribute.cs
- StickyNoteAnnotations.cs
- TreeNodeStyle.cs
- WindowsFormsHostPropertyMap.cs
- ListViewHitTestInfo.cs
- Formatter.cs
- Canvas.cs
- SelectionManager.cs
- DesignerDataTableBase.cs
- BlockCollection.cs
- ListViewAutomationPeer.cs
- CheckableControlBaseAdapter.cs
- InternalConfigHost.cs
- LinkUtilities.cs
- SoapEnumAttribute.cs
- TraceSwitch.cs
- ZipIOExtraFieldZip64Element.cs
- DataRecordInfo.cs
- BoolLiteral.cs
- SoapMessage.cs
- TextFindEngine.cs
- WebPartAuthorizationEventArgs.cs
- ValidationVisibilityAttribute.cs
- MessageDispatch.cs
- StyleBamlTreeBuilder.cs
- ScriptingSectionGroup.cs
- CommandEventArgs.cs
- ActivitySurrogate.cs
- TextCompositionManager.cs
- VectorConverter.cs
- _BaseOverlappedAsyncResult.cs
- WorkItem.cs
- ProcessThreadCollection.cs
- UserControlBuildProvider.cs
- ButtonBaseAutomationPeer.cs
- CanonicalFontFamilyReference.cs
- webeventbuffer.cs
- OperationResponse.cs
- Page.cs
- NgenServicingAttributes.cs
- ObjectListFieldCollection.cs
- cryptoapiTransform.cs
- SchemaCollectionPreprocessor.cs
- DefaultValueAttribute.cs
- SecurityContextKeyIdentifierClause.cs
- WebPartEditorApplyVerb.cs
- ReceiveSecurityHeaderEntry.cs
- WorkflowRuntimeServiceElementCollection.cs
- PowerModeChangedEventArgs.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- XmlBaseWriter.cs
- AttributeInfo.cs
- XmlChildEnumerator.cs
- Control.cs
- ObjectToken.cs
- SecurityDocument.cs
- ClientConfigurationSystem.cs
- WindowsFormsDesignerOptionService.cs
- RecipientIdentity.cs
- ToolStripRendererSwitcher.cs
- XmlSchemaAnnotation.cs
- XmlNavigatorFilter.cs
- followingsibling.cs
- MD5CryptoServiceProvider.cs
- ExpressionQuoter.cs
- ListBoxItemWrapperAutomationPeer.cs
- SyndicationItem.cs
- arc.cs
- FSWPathEditor.cs
- CreateWorkflowOwnerCommand.cs
- CreateDataSourceDialog.cs
- TextBoxView.cs
- ProcessInputEventArgs.cs
- ParameterModifier.cs
- TogglePatternIdentifiers.cs
- ZipFileInfoCollection.cs
- SafeNativeMethods.cs
- EditorPartCollection.cs
- ImportStoreException.cs
- NameNode.cs
- _FtpDataStream.cs
- Token.cs
- Funcletizer.cs
- DesignerSerializerAttribute.cs
- EDesignUtil.cs
- CodePageEncoding.cs
- EastAsianLunisolarCalendar.cs