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
- ImageAnimator.cs
- BitConverter.cs
- TagPrefixInfo.cs
- BinaryConverter.cs
- _ConnectionGroup.cs
- AutomationElementCollection.cs
- SoapEnumAttribute.cs
- StrokeCollection2.cs
- DataSysAttribute.cs
- XmlNotation.cs
- PropertyItem.cs
- DeflateStream.cs
- StsCommunicationException.cs
- BeginEvent.cs
- WindowClosedEventArgs.cs
- DataListItem.cs
- StringUtil.cs
- SqlAggregateChecker.cs
- ReadContentAsBinaryHelper.cs
- SqlDataSourceStatusEventArgs.cs
- FixedSOMPage.cs
- ServerIdentity.cs
- TraceListener.cs
- DataBindEngine.cs
- ToolbarAUtomationPeer.cs
- ServiceNameElement.cs
- AutomationAttributeInfo.cs
- GraphicsContext.cs
- BuildManager.cs
- OutputScopeManager.cs
- TypeInfo.cs
- PageThemeBuildProvider.cs
- TextSegment.cs
- WebResourceAttribute.cs
- SQLMembershipProvider.cs
- SecondaryIndexDefinition.cs
- SafeNativeMethods.cs
- UserCancellationException.cs
- XmlAnyElementAttributes.cs
- GlyphTypeface.cs
- PerformanceCounterPermissionAttribute.cs
- configsystem.cs
- SharingService.cs
- SchemaNamespaceManager.cs
- OperandQuery.cs
- TransactionInterop.cs
- ApplicationFileParser.cs
- CodeTypeDeclarationCollection.cs
- ScopedKnownTypes.cs
- BypassElementCollection.cs
- VectorCollection.cs
- ContentDisposition.cs
- PersonalizablePropertyEntry.cs
- DependencyStoreSurrogate.cs
- SchemaInfo.cs
- StrokeRenderer.cs
- ContextMenu.cs
- Transform3D.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- WebPartMenu.cs
- JsonMessageEncoderFactory.cs
- CapacityStreamGeometryContext.cs
- ProfileSettings.cs
- __Filters.cs
- ConstantProjectedSlot.cs
- DbDataAdapter.cs
- WorkflowViewElement.cs
- EnumValidator.cs
- DataGridAutomationPeer.cs
- TextEditorTables.cs
- BindUriHelper.cs
- ComponentCollection.cs
- ControlValuePropertyAttribute.cs
- DbSetClause.cs
- ProjectedSlot.cs
- PropertyToken.cs
- ExtendLockAsyncResult.cs
- EncoderBestFitFallback.cs
- ParallelTimeline.cs
- ContextMenuService.cs
- Triangle.cs
- DataGridViewCellStyleBuilderDialog.cs
- OperationBehaviorAttribute.cs
- GlyphRun.cs
- DefaultBinder.cs
- Binding.cs
- ClientTargetSection.cs
- ListViewSortEventArgs.cs
- RelationshipEndMember.cs
- shaperfactoryquerycacheentry.cs
- SingleConverter.cs
- SqlRecordBuffer.cs
- ConnectionManagementElementCollection.cs
- IDQuery.cs
- PolyLineSegment.cs
- SerializationEventsCache.cs
- ObjectDataSourceDisposingEventArgs.cs
- Int32Storage.cs
- ClaimTypes.cs
- WorkflowRuntimeServiceElementCollection.cs