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
- SynchronizationContextHelper.cs
- GeometryHitTestParameters.cs
- HandleCollector.cs
- TreeViewItemAutomationPeer.cs
- ObjectItemCollection.cs
- ServiceManager.cs
- Util.cs
- DoubleConverter.cs
- CompatibleComparer.cs
- HttpListenerElement.cs
- PreloadHost.cs
- PageAction.cs
- HeaderCollection.cs
- Bezier.cs
- CombinedGeometry.cs
- ControlEvent.cs
- _AutoWebProxyScriptWrapper.cs
- ContextMenu.cs
- TreeNodeBindingCollection.cs
- Rect3DConverter.cs
- OptimalTextSource.cs
- FieldToken.cs
- DataService.cs
- WebPartActionVerb.cs
- PageWrapper.cs
- PrintPreviewGraphics.cs
- SimpleHandlerBuildProvider.cs
- TextParaLineResult.cs
- XslNumber.cs
- ImageCodecInfoPrivate.cs
- IPEndPointCollection.cs
- ZoneLinkButton.cs
- FilterFactory.cs
- SiteMapDataSourceView.cs
- Component.cs
- DiscreteKeyFrames.cs
- FormViewPagerRow.cs
- KeyboardNavigation.cs
- webbrowsersite.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- WindowsMenu.cs
- SimpleTableProvider.cs
- QilExpression.cs
- webeventbuffer.cs
- MoveSizeWinEventHandler.cs
- MultipleViewPatternIdentifiers.cs
- TdsParserHelperClasses.cs
- Hyperlink.cs
- SvcFileManager.cs
- ProgressChangedEventArgs.cs
- IndexedString.cs
- ContainerActivationHelper.cs
- GZipObjectSerializer.cs
- GenerateHelper.cs
- PropertyEmitterBase.cs
- Pair.cs
- CryptoApi.cs
- ImageMapEventArgs.cs
- VerificationAttribute.cs
- Crypto.cs
- DynamicValidatorEventArgs.cs
- ResourceDisplayNameAttribute.cs
- HotSpot.cs
- ShapeTypeface.cs
- EventRouteFactory.cs
- WebPartChrome.cs
- TextAnchor.cs
- StringArrayConverter.cs
- DesignerTransactionCloseEvent.cs
- CommandHelper.cs
- SamlAuthorityBinding.cs
- WindowsAuthenticationEventArgs.cs
- ConnectionConsumerAttribute.cs
- ByteViewer.cs
- XmlSchemaAttribute.cs
- DataGridRelationshipRow.cs
- UserControl.cs
- PropertyManager.cs
- CollectionsUtil.cs
- ErrorWrapper.cs
- User.cs
- NavigationCommands.cs
- TimeStampChecker.cs
- FlowDocumentPaginator.cs
- ListViewInsertedEventArgs.cs
- PropertiesTab.cs
- ThreadAbortException.cs
- Parameter.cs
- PropertyCondition.cs
- Internal.cs
- Marshal.cs
- SQLInt32.cs
- Image.cs
- CompressedStack.cs
- DependencyObjectType.cs
- OneOfScalarConst.cs
- CheckBox.cs
- ApplicationFileParser.cs
- UrlMappingCollection.cs
- ReferenceService.cs