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
- TreeViewImageKeyConverter.cs
- CompilerLocalReference.cs
- RenamedEventArgs.cs
- CustomPopupPlacement.cs
- DefaultWorkflowLoaderService.cs
- ServiceOperationParameter.cs
- Token.cs
- SqlComparer.cs
- XmlUtf8RawTextWriter.cs
- RevocationPoint.cs
- MetroSerializationManager.cs
- AspNetSynchronizationContext.cs
- uribuilder.cs
- EdmEntityTypeAttribute.cs
- ByeMessageCD1.cs
- ManipulationPivot.cs
- PrimaryKeyTypeConverter.cs
- DispatchWrapper.cs
- DataGridViewUtilities.cs
- EUCJPEncoding.cs
- OleDbParameter.cs
- DesignerCategoryAttribute.cs
- SimpleApplicationHost.cs
- WebBrowserEvent.cs
- GridViewCommandEventArgs.cs
- BaseCodePageEncoding.cs
- XmlAttributes.cs
- DBAsyncResult.cs
- ReturnValue.cs
- XPathAxisIterator.cs
- XhtmlTextWriter.cs
- RotateTransform.cs
- DrawingGroupDrawingContext.cs
- XsdCachingReader.cs
- ContentElementAutomationPeer.cs
- ParserExtension.cs
- BitmapImage.cs
- Dynamic.cs
- CurrentChangedEventManager.cs
- QueryContext.cs
- WebConfigurationManager.cs
- Module.cs
- XPathPatternParser.cs
- FrameworkTextComposition.cs
- SystemGatewayIPAddressInformation.cs
- DataStreamFromComStream.cs
- objectquery_tresulttype.cs
- TextOnlyOutput.cs
- ColumnResult.cs
- ReadContentAsBinaryHelper.cs
- CommonObjectSecurity.cs
- WebPartZoneBase.cs
- InvokerUtil.cs
- TypeDescriptionProvider.cs
- Ipv6Element.cs
- CheckBoxBaseAdapter.cs
- ErrorItem.cs
- EventQueueState.cs
- SemanticValue.cs
- ObjectListShowCommandsEventArgs.cs
- DataGridDesigner.cs
- DataGridViewCellMouseEventArgs.cs
- TextTreeInsertElementUndoUnit.cs
- MenuItemBindingCollection.cs
- ApplicationServiceManager.cs
- WeakHashtable.cs
- CollectionEditorDialog.cs
- MatcherBuilder.cs
- SafeSecurityHelper.cs
- FixedBufferAttribute.cs
- ValidatorCollection.cs
- TypeLoadException.cs
- SmtpException.cs
- XhtmlBasicSelectionListAdapter.cs
- DataTableNewRowEvent.cs
- RtfToXamlLexer.cs
- recordstatescratchpad.cs
- UTF32Encoding.cs
- DummyDataSource.cs
- EntityContainerAssociationSet.cs
- AssemblyAttributes.cs
- RequestContext.cs
- DataGridViewUtilities.cs
- SqlMethods.cs
- ColumnResult.cs
- ConfigurationFileMap.cs
- EntityDataSourceContextCreatedEventArgs.cs
- DbTransaction.cs
- NullableLongSumAggregationOperator.cs
- HttpCacheVaryByContentEncodings.cs
- ProcessHostFactoryHelper.cs
- DrawListViewItemEventArgs.cs
- QueryableDataSourceHelper.cs
- FusionWrap.cs
- FontEmbeddingManager.cs
- BStrWrapper.cs
- MessageBox.cs
- StrongNameUtility.cs
- ClusterSafeNativeMethods.cs
- LongValidator.cs