Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / InternalPolicyElement.cs / 1 / InternalPolicyElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Selectors { using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Xml; using Microsoft.InfoCards.Diagnostics; using IDT=Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary: // This is the managed representation of the native POLICY_ELEMENT struct. This internal version // knows how to Marshal itself and manages the native memory associated with a marshaled POLICY_ELEMENT. // internal class InternalPolicyElement : IDisposable { CardSpacePolicyElement m_element; NativePolicyElement m_nativeElement; IntPtr m_nativePtr; // // Parameters: // target - The target of the token being described. // parameters - describes the type of token required by the target. // public InternalPolicyElement( CardSpacePolicyElement element ) { m_nativePtr = IntPtr.Zero; if( null == element.Target ) { throw IDT.ThrowHelperArgumentNull( "PolicyElement.Target" ); } m_element = element; } public static int Size { get { return Marshal.SizeOf( typeof( NativePolicyElement ) ); } } // // Summary: // Marshals the PolicyElement to it's native format. // // Parameters: // ptr - A pointer to native memory in which to place the native format of the PolicyElement. Must be // a buffer atleast as large as this.Size. // public void DoMarshal( IntPtr ptr ) { string target = m_element.Target.OuterXml; string issuer = ""; IDT.DebugAssert( IntPtr.Zero == m_nativePtr, "Pointer already assigned" ); m_nativePtr = ptr; if( m_element.Issuer != null ) { issuer = m_element.Issuer.OuterXml; } string tokenParameters = string.Empty; if( null != m_element.Parameters ) { tokenParameters = CardSpaceSelector.XmlToString( m_element.Parameters ); } m_nativeElement.targetEndpointAddress = target; m_nativeElement.issuerEndpointAddress = issuer; m_nativeElement.issuedTokenParameters = tokenParameters; m_nativeElement.policyNoticeLink = null != m_element.PolicyNoticeLink ? m_element.PolicyNoticeLink.ToString() : null ; m_nativeElement.policyNoticeVersion = m_element.PolicyNoticeVersion; m_nativeElement.isManagedCardProvider = m_element.IsManagedIssuer; Marshal.StructureToPtr( m_nativeElement, ptr, false ); return; } public void Dispose() { Dispose( true ); } ~InternalPolicyElement() { Dispose( false ); } private void Dispose( bool disposing ) { if( IntPtr.Zero != m_nativePtr ) { Marshal.DestroyStructure( m_nativePtr, typeof( NativePolicyElement ) ); m_nativePtr = IntPtr.Zero; } if( disposing ) { GC.SuppressFinalize( this ); } } } } // 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
- ManipulationCompletedEventArgs.cs
- TypeSemantics.cs
- EventRoute.cs
- Point4DValueSerializer.cs
- COM2ExtendedUITypeEditor.cs
- CachedFontFace.cs
- BufferedGraphics.cs
- BaseProcessor.cs
- TimeSpanValidatorAttribute.cs
- InternalBufferOverflowException.cs
- CreateUserWizardAutoFormat.cs
- GiveFeedbackEvent.cs
- DbProviderFactoriesConfigurationHandler.cs
- Int64.cs
- SQLDateTimeStorage.cs
- RealProxy.cs
- ListItemsPage.cs
- TimeSpanOrInfiniteValidator.cs
- X509Certificate.cs
- recordstatescratchpad.cs
- dataSvcMapFileLoader.cs
- WmlFormAdapter.cs
- AlternateViewCollection.cs
- TemplatePartAttribute.cs
- ObjectStateManagerMetadata.cs
- MaskedTextProvider.cs
- StringCollection.cs
- XPathException.cs
- ThicknessAnimationUsingKeyFrames.cs
- StrongTypingException.cs
- CryptographicAttribute.cs
- SamlDoNotCacheCondition.cs
- SqlMultiplexer.cs
- XmlRootAttribute.cs
- DataGridViewSortCompareEventArgs.cs
- MergePropertyDescriptor.cs
- DecimalConverter.cs
- ValueType.cs
- SoundPlayerAction.cs
- OLEDB_Util.cs
- TargetInvocationException.cs
- VerticalAlignConverter.cs
- ComboBoxRenderer.cs
- Options.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- NullableFloatSumAggregationOperator.cs
- WebConfigurationHost.cs
- TransactedReceiveScope.cs
- InfoCardPolicy.cs
- AvTraceFormat.cs
- SpecialTypeDataContract.cs
- WebPartZoneCollection.cs
- FileLoadException.cs
- InputMethodStateTypeInfo.cs
- BuildTopDownAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- HuffCodec.cs
- Crc32.cs
- ComponentEditorPage.cs
- MatrixAnimationUsingKeyFrames.cs
- BamlLocalizabilityResolver.cs
- TextReader.cs
- DictionaryBase.cs
- TextTreeTextNode.cs
- ActivityInterfaces.cs
- TextElementEnumerator.cs
- HtmlString.cs
- SerializationStore.cs
- Input.cs
- TextProviderWrapper.cs
- NameNode.cs
- DispatcherProcessingDisabled.cs
- RtfToXamlLexer.cs
- TextParagraphProperties.cs
- _AuthenticationState.cs
- TextEditorCharacters.cs
- StatusBar.cs
- TextParaLineResult.cs
- _SecureChannel.cs
- Content.cs
- TdsParserStateObject.cs
- MultiBinding.cs
- WebBrowserDocumentCompletedEventHandler.cs
- LogEntryHeaderv1Deserializer.cs
- CollectionViewGroupInternal.cs
- DataDocumentXPathNavigator.cs
- BuilderPropertyEntry.cs
- CrossSiteScriptingValidation.cs
- StickyNoteAnnotations.cs
- CircleEase.cs
- RecordsAffectedEventArgs.cs
- FrameworkContextData.cs
- IListConverters.cs
- DynamicResourceExtension.cs
- CultureTableRecord.cs
- RequestUriProcessor.cs
- EntityDataSourceConfigureObjectContext.cs
- ObjectSet.cs
- TextBox.cs
- IndexerNameAttribute.cs