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
- DeclaredTypeValidatorAttribute.cs
- XmlSchemaImporter.cs
- RtfToXamlReader.cs
- EmptyStringExpandableObjectConverter.cs
- CollectionViewSource.cs
- CorePropertiesFilter.cs
- SemanticResultKey.cs
- XmlSchemaObjectCollection.cs
- CacheEntry.cs
- CacheSection.cs
- HostingEnvironmentException.cs
- SchemaConstraints.cs
- SequenceFullException.cs
- SessionSwitchEventArgs.cs
- Attributes.cs
- NestedContainer.cs
- ColorKeyFrameCollection.cs
- EDesignUtil.cs
- AudioDeviceOut.cs
- WebPartsPersonalization.cs
- AsyncContentLoadedEventArgs.cs
- EncryptedReference.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ContentTextAutomationPeer.cs
- _TLSstream.cs
- SessionPageStatePersister.cs
- FactoryId.cs
- VSWCFServiceContractGenerator.cs
- PrimitiveDataContract.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- OperationContractGenerationContext.cs
- RayHitTestParameters.cs
- ExitEventArgs.cs
- DefaultValueTypeConverter.cs
- AssemblyAttributes.cs
- TextBoxBase.cs
- AccessDataSource.cs
- SoapHeaderException.cs
- XmlBinaryReader.cs
- JavaScriptObjectDeserializer.cs
- CalloutQueueItem.cs
- UIElement.cs
- PropertyCollection.cs
- WebPartZone.cs
- TabControl.cs
- PropertyBuilder.cs
- ByteRangeDownloader.cs
- SingleResultAttribute.cs
- HtmlControlPersistable.cs
- RowToFieldTransformer.cs
- _NegoState.cs
- Executor.cs
- FormViewDeleteEventArgs.cs
- Stack.cs
- DefaultCommandConverter.cs
- PackWebRequestFactory.cs
- sqlinternaltransaction.cs
- DbDataAdapter.cs
- AnimatedTypeHelpers.cs
- Pen.cs
- ImageDesigner.cs
- HttpSysSettings.cs
- CqlWriter.cs
- WindowsAltTab.cs
- DataGridViewRowCollection.cs
- Style.cs
- LongSumAggregationOperator.cs
- TrustManager.cs
- ApplicationServiceHelper.cs
- MgmtConfigurationRecord.cs
- DashStyles.cs
- VisualTreeHelper.cs
- Single.cs
- BrowserCapabilitiesCompiler.cs
- WindowsAltTab.cs
- LoginUtil.cs
- ComboBoxRenderer.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- ActivitySurrogate.cs
- InkCanvasInnerCanvas.cs
- DetailsViewInsertedEventArgs.cs
- SortKey.cs
- CustomPeerResolverService.cs
- FontFamilyConverter.cs
- SqlCommand.cs
- DesignerCategoryAttribute.cs
- ExtenderProvidedPropertyAttribute.cs
- ConfigXmlText.cs
- MimeFormatter.cs
- QuaternionValueSerializer.cs
- PathFigureCollection.cs
- CompletedAsyncResult.cs
- ApplicationCommands.cs
- StructuredTypeEmitter.cs
- DataBindingCollectionEditor.cs
- SimpleHandlerFactory.cs
- ServiceTimeoutsBehavior.cs
- GridViewDeletedEventArgs.cs
- DesignTimeValidationFeature.cs
- AssemblyBuilder.cs