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
- UnlockCardRequest.cs
- CodeArrayCreateExpression.cs
- RectValueSerializer.cs
- IgnoreSectionHandler.cs
- TypedTableHandler.cs
- PackUriHelper.cs
- QuotedStringWriteStateInfo.cs
- ObfuscationAttribute.cs
- SafeTimerHandle.cs
- WmlImageAdapter.cs
- XmlToDatasetMap.cs
- StateDesigner.Helpers.cs
- WinFormsUtils.cs
- TableParaClient.cs
- updateconfighost.cs
- linebase.cs
- NumericUpDownAcceleration.cs
- ZipIOLocalFileHeader.cs
- ReflectPropertyDescriptor.cs
- XmlSchemaRedefine.cs
- TextDecorationLocationValidation.cs
- Empty.cs
- ValueChangedEventManager.cs
- CroppedBitmap.cs
- MissingMethodException.cs
- FusionWrap.cs
- DispatcherSynchronizationContext.cs
- ApplicationContext.cs
- DataBindingsDialog.cs
- DataViewSettingCollection.cs
- ResourceReferenceExpressionConverter.cs
- EntityContainerEntitySet.cs
- ReferenceSchema.cs
- ReadOnlyMetadataCollection.cs
- LinqDataSourceValidationException.cs
- GlobalAllocSafeHandle.cs
- PeerTransportListenAddressValidatorAttribute.cs
- TextSchema.cs
- TextTreeObjectNode.cs
- WindowsSecurityTokenAuthenticator.cs
- RadioButton.cs
- DataGridItemCollection.cs
- QuaternionAnimationUsingKeyFrames.cs
- safesecurityhelperavalon.cs
- PropertyGridView.cs
- InputBuffer.cs
- ExtendedProtectionPolicy.cs
- RequestCacheManager.cs
- ContainsRowNumberChecker.cs
- DataGridViewColumnHeaderCell.cs
- ListItemConverter.cs
- WindowsPen.cs
- SqlRewriteScalarSubqueries.cs
- XamlSerializerUtil.cs
- XmlReflectionImporter.cs
- CreateUserWizardStep.cs
- assertwrapper.cs
- RuleInfoComparer.cs
- ScaleTransform.cs
- AxisAngleRotation3D.cs
- PasswordTextContainer.cs
- BasePattern.cs
- Facet.cs
- LinkUtilities.cs
- UICuesEvent.cs
- SmiMetaData.cs
- DataGridViewRow.cs
- PropertyValueEditor.cs
- SystemIPGlobalProperties.cs
- DefaultPropertyAttribute.cs
- Bezier.cs
- FileBasedResourceGroveler.cs
- OleDbRowUpdatedEvent.cs
- XmlImplementation.cs
- BmpBitmapDecoder.cs
- PanelDesigner.cs
- FloaterBaseParagraph.cs
- SoapAttributes.cs
- ScrollProperties.cs
- QueryParameter.cs
- NameSpaceExtractor.cs
- WorkflowMarkupSerializerMapping.cs
- DataSourceListEditor.cs
- CallContext.cs
- DataSvcMapFile.cs
- Schema.cs
- CLSCompliantAttribute.cs
- ConfigurationCollectionAttribute.cs
- QueuePathDialog.cs
- Solver.cs
- TextBoxRenderer.cs
- TypeUtils.cs
- PointAnimationUsingKeyFrames.cs
- SecurityChannelFaultConverter.cs
- RegistryPermission.cs
- FileUpload.cs
- InlineObject.cs
- GridItemProviderWrapper.cs
- CustomErrorsSection.cs
- UnsafeCollabNativeMethods.cs