Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // 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
- XamlSerializerUtil.cs
- VerificationAttribute.cs
- OdbcDataReader.cs
- CheckBox.cs
- StringWriter.cs
- SystemIcmpV6Statistics.cs
- SchemaCollectionCompiler.cs
- BitmapEffectState.cs
- OracleDateTime.cs
- OleDbCommand.cs
- DependencyObjectProvider.cs
- SafeThreadHandle.cs
- EditorPart.cs
- LowerCaseStringConverter.cs
- ServiceHttpHandlerFactory.cs
- CharEntityEncoderFallback.cs
- SoapServerProtocol.cs
- XmlSchemaNotation.cs
- ClassicBorderDecorator.cs
- SafeSystemMetrics.cs
- RequestCache.cs
- GridViewRowEventArgs.cs
- GlyphsSerializer.cs
- DesignerObject.cs
- ValueOfAction.cs
- Win32Native.cs
- XmlElement.cs
- PauseStoryboard.cs
- ReachUIElementCollectionSerializer.cs
- ArrangedElementCollection.cs
- HtmlWindowCollection.cs
- XmlAttributeAttribute.cs
- ConstantExpression.cs
- AmbientLight.cs
- TextFormatterHost.cs
- TableLayoutStyleCollection.cs
- RepeaterItem.cs
- SHA512Managed.cs
- ListInitExpression.cs
- IDReferencePropertyAttribute.cs
- WebServiceClientProxyGenerator.cs
- SecUtil.cs
- TemplateField.cs
- ObjectContextServiceProvider.cs
- OleDbParameterCollection.cs
- GestureRecognizer.cs
- StickyNote.cs
- WCFModelStrings.Designer.cs
- CounterCreationData.cs
- XmlSerializerNamespaces.cs
- InternalControlCollection.cs
- CodeTypeParameter.cs
- AspNetSynchronizationContext.cs
- smtpconnection.cs
- InvalidAsynchronousStateException.cs
- SqlConnectionManager.cs
- ProxyWebPartConnectionCollection.cs
- InputScopeConverter.cs
- SByteConverter.cs
- ConfigurationErrorsException.cs
- DataFieldCollectionEditor.cs
- ParameterBuilder.cs
- CharEntityEncoderFallback.cs
- OracleTimeSpan.cs
- TypeSchema.cs
- PlatformNotSupportedException.cs
- PageStatePersister.cs
- UnauthorizedAccessException.cs
- RoleGroupCollection.cs
- Sql8ConformanceChecker.cs
- XmlComplianceUtil.cs
- RenderOptions.cs
- Contracts.cs
- ChangeProcessor.cs
- WizardPanelChangingEventArgs.cs
- SqlMetaData.cs
- OrderedDictionary.cs
- DataRelation.cs
- ApplicationManager.cs
- OleDbError.cs
- IPipelineRuntime.cs
- PackagePart.cs
- Descriptor.cs
- InnerItemCollectionView.cs
- MenuStrip.cs
- SMSvcHost.cs
- ProfileInfo.cs
- MbpInfo.cs
- BitmapInitialize.cs
- AdapterDictionary.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- PageThemeCodeDomTreeGenerator.cs
- ResourceContainer.cs
- FixedSchema.cs
- CngAlgorithmGroup.cs
- TransformPattern.cs
- Renderer.cs
- RightsManagementPermission.cs
- DictionaryContent.cs
- FileDetails.cs