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
- BooleanAnimationBase.cs
- ScriptResourceHandler.cs
- DataGridViewTextBoxColumn.cs
- MaskedTextProvider.cs
- AccessViolationException.cs
- LinqDataSourceSelectEventArgs.cs
- DoubleMinMaxAggregationOperator.cs
- PopupControlService.cs
- CodeArrayIndexerExpression.cs
- SqlIdentifier.cs
- TrackingProfileCache.cs
- VirtualDirectoryMapping.cs
- MessageContractExporter.cs
- UIPropertyMetadata.cs
- login.cs
- NativeWindow.cs
- MarshalDirectiveException.cs
- PrintSchema.cs
- ConfigXmlSignificantWhitespace.cs
- XmlReader.cs
- FileIOPermission.cs
- HtmlEmptyTagControlBuilder.cs
- Roles.cs
- MethodCallTranslator.cs
- GeneralTransform3DGroup.cs
- OdbcEnvironmentHandle.cs
- PrimitiveRenderer.cs
- XmlLanguage.cs
- RemotingAttributes.cs
- BamlStream.cs
- BrowserTree.cs
- DragCompletedEventArgs.cs
- MouseOverProperty.cs
- SQLStringStorage.cs
- OdbcReferenceCollection.cs
- TreeNodeConverter.cs
- CollectionEditor.cs
- AdjustableArrowCap.cs
- GraphicsPathIterator.cs
- WindowInteropHelper.cs
- CodeNamespaceCollection.cs
- WindowsTokenRoleProvider.cs
- TextSegment.cs
- BinaryObjectInfo.cs
- MSG.cs
- StateItem.cs
- XmlNodeList.cs
- ConditionalDesigner.cs
- RenderData.cs
- ContextMenuAutomationPeer.cs
- ListItem.cs
- DelegatingConfigHost.cs
- TextLineResult.cs
- SrgsNameValueTag.cs
- DocumentReferenceCollection.cs
- NavigatingCancelEventArgs.cs
- BooleanProjectedSlot.cs
- FindResponse.cs
- Localizer.cs
- XPathDocumentBuilder.cs
- ZipIOCentralDirectoryBlock.cs
- CacheAxisQuery.cs
- EventHandlers.cs
- ViewStateAttachedPropertyFeature.cs
- QuotedStringWriteStateInfo.cs
- AlignmentYValidation.cs
- MessageBox.cs
- TypeUnloadedException.cs
- IncrementalCompileAnalyzer.cs
- NativeRightsManagementAPIsStructures.cs
- ConcurrencyBehavior.cs
- RequestTimeoutManager.cs
- Events.cs
- TextProviderWrapper.cs
- WindowsSspiNegotiation.cs
- HttpSessionStateBase.cs
- HScrollProperties.cs
- TextElementEditingBehaviorAttribute.cs
- MarkupCompiler.cs
- ActivityInstanceReference.cs
- WsatConfiguration.cs
- SqlCommand.cs
- RoleGroup.cs
- FunctionUpdateCommand.cs
- XmlAnyElementAttribute.cs
- XPathPatternBuilder.cs
- ContainerTracking.cs
- HandlerWithFactory.cs
- CachedTypeface.cs
- DesignerLoader.cs
- PlaceHolder.cs
- Rectangle.cs
- BitmapEffectGroup.cs
- ConvertEvent.cs
- ObjectDataProvider.cs
- ParseHttpDate.cs
- Stackframe.cs
- WizardStepBase.cs
- SparseMemoryStream.cs
- DataProviderNameConverter.cs