Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / InternalPolicyElement.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlInputRadioButton.cs
- FormViewRow.cs
- MetadataArtifactLoaderCompositeResource.cs
- StylusButton.cs
- OracleConnectionString.cs
- InkCanvas.cs
- HitTestDrawingContextWalker.cs
- SerializationInfo.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- PixelFormat.cs
- Soap12ServerProtocol.cs
- PersonalizationProviderCollection.cs
- ExtractCollection.cs
- JsonWriterDelegator.cs
- ActivityInstance.cs
- ToolStripItem.cs
- UnsafeCollabNativeMethods.cs
- FontWeight.cs
- SafeHandles.cs
- RegistryConfigurationProvider.cs
- CommentEmitter.cs
- SecurityKeyIdentifier.cs
- SiteMap.cs
- WebPartConnectionsDisconnectVerb.cs
- WebPartConnectVerb.cs
- Vector3DIndependentAnimationStorage.cs
- FontFamilyValueSerializer.cs
- SchemaInfo.cs
- StateFinalizationDesigner.cs
- HealthMonitoringSectionHelper.cs
- PreviewPrintController.cs
- SqlFunctions.cs
- httpapplicationstate.cs
- EmbeddedObject.cs
- DataControlReference.cs
- DesignerLinkAdapter.cs
- ProcessHostFactoryHelper.cs
- ClientOptions.cs
- ListViewItemSelectionChangedEvent.cs
- WebPartTransformerAttribute.cs
- PostBackOptions.cs
- TrackingStringDictionary.cs
- DragDrop.cs
- SmiRequestExecutor.cs
- DataGridTextColumn.cs
- XmlSchemaIdentityConstraint.cs
- M3DUtil.cs
- TreeWalkHelper.cs
- sqlcontext.cs
- SizeAnimationUsingKeyFrames.cs
- TextBox.cs
- FontFaceLayoutInfo.cs
- RSAOAEPKeyExchangeDeformatter.cs
- MailAddressCollection.cs
- JsonReaderWriterFactory.cs
- ApplicationInfo.cs
- FormViewInsertedEventArgs.cs
- DataServiceQueryException.cs
- EntityObject.cs
- EventListener.cs
- SmiGettersStream.cs
- ContainerParaClient.cs
- PieceNameHelper.cs
- QilTargetType.cs
- SQLBytes.cs
- MessageDirection.cs
- SmiTypedGetterSetter.cs
- MetadataException.cs
- OdbcParameter.cs
- TraceData.cs
- HttpProtocolImporter.cs
- RedBlackList.cs
- EdmProperty.cs
- SQLBinaryStorage.cs
- SynchronizedInputProviderWrapper.cs
- HtmlProps.cs
- BitmapMetadataBlob.cs
- HasCopySemanticsAttribute.cs
- DesignerAttribute.cs
- TextContainer.cs
- XmlCharacterData.cs
- DataGridSortCommandEventArgs.cs
- StringDictionary.cs
- Exceptions.cs
- ConfigXmlSignificantWhitespace.cs
- BitmapEffect.cs
- SqlLiftIndependentRowExpressions.cs
- HtmlControl.cs
- LayoutDump.cs
- DescendantBaseQuery.cs
- TextDocumentView.cs
- Margins.cs
- COSERVERINFO.cs
- WebDisplayNameAttribute.cs
- GroupStyle.cs
- SystemParameters.cs
- SafeUserTokenHandle.cs
- Missing.cs
- GridViewDeleteEventArgs.cs
- AutoResizedEvent.cs