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
- TreeIterator.cs
- XpsS0ValidatingLoader.cs
- QilIterator.cs
- RenderingEventArgs.cs
- AdRotator.cs
- SerializationFieldInfo.cs
- CheckBoxList.cs
- LoginView.cs
- PinnedBufferMemoryStream.cs
- ValidatedControlConverter.cs
- ConstantProjectedSlot.cs
- TypeBrowserDialog.cs
- SmiGettersStream.cs
- ModuleBuilderData.cs
- DeclarativeCatalogPart.cs
- ComponentConverter.cs
- CollectionsUtil.cs
- UiaCoreProviderApi.cs
- CodeArrayCreateExpression.cs
- DataSet.cs
- ResponseStream.cs
- OleDbTransaction.cs
- SqlLiftWhereClauses.cs
- ComplexTypeEmitter.cs
- CacheForPrimitiveTypes.cs
- mediaeventargs.cs
- HttpProfileGroupBase.cs
- _IPv4Address.cs
- SafeThreadHandle.cs
- UntrustedRecipientException.cs
- pingexception.cs
- AssemblyAttributes.cs
- Rectangle.cs
- DrawingCollection.cs
- EllipticalNodeOperations.cs
- DataSourceCacheDurationConverter.cs
- DesignerGeometryHelper.cs
- ArrayConverter.cs
- MenuItemCollectionEditor.cs
- LocationSectionRecord.cs
- Imaging.cs
- CallTemplateAction.cs
- GuidelineCollection.cs
- ContainerVisual.cs
- Hex.cs
- PropertyGeneratedEventArgs.cs
- UpdateCommand.cs
- Soap.cs
- ResXResourceWriter.cs
- HttpListenerResponse.cs
- QueueNameHelper.cs
- RowsCopiedEventArgs.cs
- TextHidden.cs
- SoapTransportImporter.cs
- MetadataCache.cs
- TextServicesHost.cs
- NotConverter.cs
- DependencyPropertyChangedEventArgs.cs
- DBDataPermission.cs
- BinHexEncoder.cs
- SerializationHelper.cs
- NonValidatingSecurityTokenAuthenticator.cs
- RuleDefinitions.cs
- CallbackHandler.cs
- ImageMap.cs
- ModelItemImpl.cs
- DataGridViewCellStateChangedEventArgs.cs
- WindowsAltTab.cs
- ConstraintManager.cs
- BindingMemberInfo.cs
- ToolTipAutomationPeer.cs
- PartialCachingControl.cs
- tibetanshape.cs
- Vars.cs
- TemplateBindingExpression.cs
- UIElementIsland.cs
- WebPartUtil.cs
- DataContractSerializerSection.cs
- WebPartConnectionCollection.cs
- DataBoundControlAdapter.cs
- DataTableTypeConverter.cs
- SymbolType.cs
- DrawingAttributes.cs
- DataSourceBooleanViewSchemaConverter.cs
- LoginName.cs
- Attributes.cs
- HMACSHA384.cs
- ConfigXmlWhitespace.cs
- BlobPersonalizationState.cs
- DocumentViewerConstants.cs
- QueuePathDialog.cs
- Repeater.cs
- MultiTouchSystemGestureLogic.cs
- XmlMemberMapping.cs
- VisualCollection.cs
- SpeechSynthesizer.cs
- StreamWriter.cs
- SqlRetyper.cs
- WhitespaceRule.cs
- Selector.cs