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
- EdmComplexTypeAttribute.cs
- ValueSerializerAttribute.cs
- HttpGetServerProtocol.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- LoginView.cs
- RankException.cs
- OutOfProcStateClientManager.cs
- Formatter.cs
- FreeFormDesigner.cs
- SqlServices.cs
- ButtonChrome.cs
- RouteCollection.cs
- Opcode.cs
- SqlHelper.cs
- JournalEntry.cs
- HttpEncoderUtility.cs
- SecurityPermission.cs
- LabelAutomationPeer.cs
- RowCache.cs
- CharacterHit.cs
- ImageDrawing.cs
- EventHandlersStore.cs
- WSHttpBindingBaseElement.cs
- CustomError.cs
- GridViewCancelEditEventArgs.cs
- PolicyValidationException.cs
- NativeConfigurationLoader.cs
- EntitySetBase.cs
- TransformerInfo.cs
- XmlSchemaSet.cs
- WebPartCatalogAddVerb.cs
- SqlBooleanMismatchVisitor.cs
- DetailsViewInsertedEventArgs.cs
- AnnotationAuthorChangedEventArgs.cs
- SoapEnumAttribute.cs
- GeneralTransform3DTo2DTo3D.cs
- TraceProvider.cs
- HttpRequest.cs
- HttpApplication.cs
- PerformanceCounterLib.cs
- SerializationSectionGroup.cs
- CodeDesigner.cs
- GeneralTransform3D.cs
- PowerModeChangedEventArgs.cs
- MethodRental.cs
- BoundField.cs
- Activator.cs
- AnnotationComponentManager.cs
- _AcceptOverlappedAsyncResult.cs
- IRCollection.cs
- ExtenderHelpers.cs
- MethodResolver.cs
- DetailsView.cs
- InterleavedZipPartStream.cs
- SqlFacetAttribute.cs
- AvtEvent.cs
- DbUpdateCommandTree.cs
- LogSwitch.cs
- ConnectionStringSettings.cs
- HttpRuntime.cs
- BitmapSource.cs
- SettingsSection.cs
- WebPageTraceListener.cs
- TextRangeEditTables.cs
- HybridDictionary.cs
- ValueExpressions.cs
- xdrvalidator.cs
- PageCatalogPart.cs
- ContainerTracking.cs
- WebCodeGenerator.cs
- RegexTypeEditor.cs
- StringDictionary.cs
- VisualStateGroup.cs
- Decimal.cs
- OleDbConnectionFactory.cs
- CodeTypeDelegate.cs
- Ray3DHitTestResult.cs
- NestedContainer.cs
- XmlEnumAttribute.cs
- ToolCreatedEventArgs.cs
- CodeAttributeArgumentCollection.cs
- TextElementEditingBehaviorAttribute.cs
- MultiPageTextView.cs
- ProxyWebPartManager.cs
- XmlElementList.cs
- XmlWellformedWriter.cs
- ListSourceHelper.cs
- XmlTypeAttribute.cs
- OleDbTransaction.cs
- RangeValueProviderWrapper.cs
- SecurityPermission.cs
- ImageButton.cs
- GridItemPatternIdentifiers.cs
- BasicAsyncResult.cs
- DefaultPrintController.cs
- DataGridDesigner.cs
- QuadraticBezierSegment.cs
- LocalizedNameDescriptionPair.cs
- EditingCoordinator.cs
- RepeatButton.cs