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
- FileDialogCustomPlace.cs
- XPathSingletonIterator.cs
- StringToken.cs
- DiagnosticTrace.cs
- UnsafeNetInfoNativeMethods.cs
- LiteralDesigner.cs
- PageEventArgs.cs
- WebBrowserHelper.cs
- ProxySimple.cs
- ColorContextHelper.cs
- PropertyToken.cs
- HttpApplication.cs
- X509Chain.cs
- TimeManager.cs
- RequestCachePolicy.cs
- WizardStepBase.cs
- HandleRef.cs
- MetadataWorkspace.cs
- DataBindingHandlerAttribute.cs
- ProfileBuildProvider.cs
- DataGridViewColumnStateChangedEventArgs.cs
- CompilerGeneratedAttribute.cs
- RSAPKCS1SignatureDeformatter.cs
- ProxyBuilder.cs
- DataGridCommandEventArgs.cs
- CreateUserErrorEventArgs.cs
- DeclarativeCatalogPartDesigner.cs
- Opcode.cs
- ApplicationHost.cs
- LocalizableAttribute.cs
- ValidationErrorCollection.cs
- sortedlist.cs
- ComplexPropertyEntry.cs
- AutoGeneratedFieldProperties.cs
- DataSet.cs
- XmlCharType.cs
- XmlSchemaNotation.cs
- ExtractedStateEntry.cs
- mongolianshape.cs
- CodeDirectiveCollection.cs
- RequestQueue.cs
- ProtocolViolationException.cs
- ResourceFallbackManager.cs
- GenericAuthenticationEventArgs.cs
- IntegrationExceptionEventArgs.cs
- WithStatement.cs
- GradientStop.cs
- ProviderCommandInfoUtils.cs
- AbstractSvcMapFileLoader.cs
- TextModifier.cs
- HighContrastHelper.cs
- CommandHelpers.cs
- ChtmlTextWriter.cs
- ActivityCodeGenerator.cs
- BaseInfoTable.cs
- FtpRequestCacheValidator.cs
- GeometryCombineModeValidation.cs
- InfoCardArgumentException.cs
- ConfigurationSection.cs
- NumericUpDownAccelerationCollection.cs
- EntityException.cs
- OdbcCommand.cs
- TextDecorationCollectionConverter.cs
- XPathAxisIterator.cs
- Axis.cs
- MeshGeometry3D.cs
- PropertyGridEditorPart.cs
- TextFormatterImp.cs
- CatalogZoneBase.cs
- shaper.cs
- FontSource.cs
- InvalidDataException.cs
- dataobject.cs
- SessionEndingCancelEventArgs.cs
- BamlLocalizer.cs
- Bidi.cs
- ToolboxDataAttribute.cs
- BooleanConverter.cs
- UInt64Storage.cs
- AdPostCacheSubstitution.cs
- SqlAliaser.cs
- PreApplicationStartMethodAttribute.cs
- OutputScope.cs
- StylusPointDescription.cs
- ImageFormatConverter.cs
- JsonReaderDelegator.cs
- SqlInfoMessageEvent.cs
- ReliabilityContractAttribute.cs
- DataGridViewRowCancelEventArgs.cs
- NumericUpDownAcceleration.cs
- HostedTransportConfigurationManager.cs
- SchemaComplexType.cs
- IBuiltInEvidence.cs
- XamlReaderHelper.cs
- newinstructionaction.cs
- XamlSerializerUtil.cs
- DocumentGrid.cs
- XmlUtilWriter.cs
- AnchoredBlock.cs
- BigInt.cs