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
- ComponentConverter.cs
- ValidationErrorCollection.cs
- TextBoxBase.cs
- MarkedHighlightComponent.cs
- DataGridViewEditingControlShowingEventArgs.cs
- SiteMapSection.cs
- StrongNameUtility.cs
- SqlParameterCollection.cs
- FreezableDefaultValueFactory.cs
- DataSvcMapFileSerializer.cs
- ClientScriptManager.cs
- GridViewRowPresenter.cs
- PropertyStore.cs
- ExpressionBinding.cs
- BoundsDrawingContextWalker.cs
- RequestedSignatureDialog.cs
- GridLength.cs
- PartialList.cs
- Matrix.cs
- SqlXml.cs
- AxWrapperGen.cs
- XmlSequenceWriter.cs
- PackWebRequestFactory.cs
- RawMouseInputReport.cs
- DynamicRenderer.cs
- TypeGeneratedEventArgs.cs
- Queue.cs
- FixedSOMTable.cs
- UserControlDocumentDesigner.cs
- ChannelTracker.cs
- bidPrivateBase.cs
- GlobalEventManager.cs
- CommandSet.cs
- EntityReference.cs
- DynamicMethod.cs
- ScopeElement.cs
- DataGrid.cs
- ZoneButton.cs
- X509ChainPolicy.cs
- ColumnWidthChangingEvent.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- PropertyEmitterBase.cs
- TreeNodeStyle.cs
- XmlSchemaSearchPattern.cs
- AppAction.cs
- PropertyDescriptorCollection.cs
- _IPv4Address.cs
- prefixendpointaddressmessagefiltertable.cs
- ExpressionBuilder.cs
- AttachmentService.cs
- TiffBitmapDecoder.cs
- XsltSettings.cs
- ConfigurationPropertyAttribute.cs
- TimerExtension.cs
- Utils.cs
- ListViewUpdateEventArgs.cs
- EpmCustomContentSerializer.cs
- StylusPlugInCollection.cs
- XmlQueryContext.cs
- ConfigsHelper.cs
- DomainUpDown.cs
- Html32TextWriter.cs
- JournalNavigationScope.cs
- Facet.cs
- OleAutBinder.cs
- LexicalChunk.cs
- ArraySubsetEnumerator.cs
- ContentPosition.cs
- CLSCompliantAttribute.cs
- CompModSwitches.cs
- FreezableOperations.cs
- ResourceReferenceKeyNotFoundException.cs
- PageTextBox.cs
- SignalGate.cs
- EventLogEntryCollection.cs
- ImpersonationContext.cs
- TableDesigner.cs
- TableLayoutCellPaintEventArgs.cs
- RectangleHotSpot.cs
- TaiwanCalendar.cs
- oledbconnectionstring.cs
- BaseDataList.cs
- LinkedResource.cs
- SQLBytesStorage.cs
- HierarchicalDataBoundControlAdapter.cs
- ElementProxy.cs
- DataObjectFieldAttribute.cs
- SourceFilter.cs
- HMACSHA384.cs
- ScrollBarAutomationPeer.cs
- UiaCoreApi.cs
- Privilege.cs
- ButtonBase.cs
- ISAPIRuntime.cs
- DataSourceControlBuilder.cs
- WriteableBitmap.cs
- FeatureSupport.cs
- PasswordTextNavigator.cs
- ResourceContainer.cs
- MethodRental.cs