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
- ManualWorkflowSchedulerService.cs
- DataServiceKeyAttribute.cs
- DmlSqlGenerator.cs
- ControlCachePolicy.cs
- AccessText.cs
- BasePropertyDescriptor.cs
- WebPartEditorCancelVerb.cs
- SortQuery.cs
- TCEAdapterGenerator.cs
- RangeValuePattern.cs
- OletxEnlistment.cs
- QueryCursorEventArgs.cs
- ParsedAttributeCollection.cs
- XmlDomTextWriter.cs
- LambdaCompiler.Binary.cs
- UpnEndpointIdentityExtension.cs
- FragmentQueryProcessor.cs
- TextTreeFixupNode.cs
- RelationshipWrapper.cs
- AlternationConverter.cs
- ContainerParagraph.cs
- DataGridViewBand.cs
- PointHitTestResult.cs
- ToolStripDropDownItem.cs
- BindUriHelper.cs
- ThreadInterruptedException.cs
- ParentQuery.cs
- RequiredFieldValidator.cs
- ContentPosition.cs
- RtType.cs
- PromptEventArgs.cs
- EventLogEntryCollection.cs
- LogLogRecord.cs
- CompoundFileStorageReference.cs
- KeyFrames.cs
- HealthMonitoringSection.cs
- QueryAccessibilityHelpEvent.cs
- DataIdProcessor.cs
- TemplateColumn.cs
- ParseElement.cs
- KeyBinding.cs
- SspiSafeHandles.cs
- DBConcurrencyException.cs
- HostingPreferredMapPath.cs
- Vector3dCollection.cs
- MergeFilterQuery.cs
- DataGridCellEditEndingEventArgs.cs
- InvalidDocumentContentsException.cs
- HttpWebResponse.cs
- ModelItemCollectionImpl.cs
- FontStretches.cs
- TraceListener.cs
- contentDescriptor.cs
- DataGridTablesFactory.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- SHA384CryptoServiceProvider.cs
- XPathNodeList.cs
- VisualBrush.cs
- SafeRightsManagementQueryHandle.cs
- DeferredSelectedIndexReference.cs
- TaskScheduler.cs
- WindowsTitleBar.cs
- DataRecordInternal.cs
- ToolboxComponentsCreatingEventArgs.cs
- UnsafeNativeMethods.cs
- ClientBuildManagerCallback.cs
- SelectionRangeConverter.cs
- GradientBrush.cs
- CopyNodeSetAction.cs
- DataRowCollection.cs
- RangeBaseAutomationPeer.cs
- DiagnosticsConfigurationHandler.cs
- PostBackTrigger.cs
- ToolStripPanelRenderEventArgs.cs
- PaginationProgressEventArgs.cs
- DbProviderManifest.cs
- TextSchema.cs
- Int32Storage.cs
- FileStream.cs
- FormViewInsertEventArgs.cs
- CompilationRelaxations.cs
- SimpleWorkerRequest.cs
- BatchServiceHost.cs
- CacheHelper.cs
- SqlTypesSchemaImporter.cs
- SecureStringHasher.cs
- EdmMember.cs
- DataServiceContext.cs
- BitmapDecoder.cs
- Win32Native.cs
- FaultPropagationRecord.cs
- NativeMethods.cs
- NetNamedPipeSecurityElement.cs
- securitycriticaldata.cs
- JoinTreeNode.cs
- XmlElementAttributes.cs
- HtmlControlPersistable.cs
- SectionRecord.cs
- VoiceInfo.cs
- UserPersonalizationStateInfo.cs