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
- EventLogInformation.cs
- WeakReferenceList.cs
- DbResourceAllocator.cs
- ZoneIdentityPermission.cs
- TraceContextEventArgs.cs
- BindingNavigator.cs
- BaseValidator.cs
- ValueType.cs
- CheckBoxField.cs
- RedBlackList.cs
- TreeNodeStyleCollection.cs
- ItemContainerProviderWrapper.cs
- DbQueryCommandTree.cs
- DatasetMethodGenerator.cs
- Transform.cs
- FieldBuilder.cs
- ControlBindingsConverter.cs
- DrawingCollection.cs
- XmlNodeChangedEventArgs.cs
- DataPagerCommandEventArgs.cs
- HtmlTable.cs
- SecurityTokenSerializer.cs
- SessionPageStateSection.cs
- PathSegmentCollection.cs
- CodeTypeMember.cs
- XmlDesignerDataSourceView.cs
- SqlTransaction.cs
- ImageSourceConverter.cs
- WindowsFormsSynchronizationContext.cs
- DropShadowBitmapEffect.cs
- CalendarAutoFormatDialog.cs
- DataBinder.cs
- PrimitiveRenderer.cs
- BufferedGraphicsContext.cs
- TextFormatterContext.cs
- SequenceNumber.cs
- XmlSchemaSimpleTypeUnion.cs
- NavigationPropertyEmitter.cs
- SqlExpander.cs
- ClientRolePrincipal.cs
- CodeVariableReferenceExpression.cs
- XmlILAnnotation.cs
- EditorAttribute.cs
- TextParagraphCache.cs
- TextDocumentView.cs
- TcpAppDomainProtocolHandler.cs
- DataGridViewSelectedColumnCollection.cs
- StateItem.cs
- InvokeGenerator.cs
- ValidationEventArgs.cs
- Perspective.cs
- CachedPathData.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ToolStripDropDownItemDesigner.cs
- ComboBoxRenderer.cs
- LongValidator.cs
- Misc.cs
- SpecialNameAttribute.cs
- IndependentlyAnimatedPropertyMetadata.cs
- Point3D.cs
- SqlCacheDependency.cs
- ExpressionServices.cs
- PagePropertiesChangingEventArgs.cs
- OSFeature.cs
- CorrelationScope.cs
- SqlInternalConnectionTds.cs
- PackageFilter.cs
- WebPartDescription.cs
- CultureTableRecord.cs
- QueryActivatableWorkflowsCommand.cs
- EdmSchemaError.cs
- TableAdapterManagerHelper.cs
- HtmlInputControl.cs
- SqlDataSourceEnumerator.cs
- XmlSchemaSimpleContent.cs
- EncoderParameter.cs
- Parameter.cs
- SweepDirectionValidation.cs
- Pair.cs
- GregorianCalendar.cs
- ExpressionBuilderCollection.cs
- MetadataArtifactLoaderCompositeFile.cs
- DispatcherEventArgs.cs
- InputMethodStateChangeEventArgs.cs
- XmlTextReader.cs
- DataGridViewLinkCell.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- SqlDataRecord.cs
- MimeTypePropertyAttribute.cs
- sortedlist.cs
- DataTableNewRowEvent.cs
- UdpDiscoveryEndpointElement.cs
- UncommonField.cs
- XmlCharCheckingReader.cs
- ListBase.cs
- SessionStateItemCollection.cs
- FlowPosition.cs
- GridViewRowCollection.cs
- HTTPNotFoundHandler.cs
- OdbcCommand.cs