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
- ClientSettingsProvider.cs
- _PooledStream.cs
- EventLog.cs
- WindowsGraphics2.cs
- DataGridRowEventArgs.cs
- RuleCache.cs
- __Error.cs
- MsmqIntegrationSecurity.cs
- NullExtension.cs
- GridViewCancelEditEventArgs.cs
- CallSiteBinder.cs
- BinaryUtilClasses.cs
- HtmlForm.cs
- GrammarBuilderWildcard.cs
- ParameterEditorUserControl.cs
- NativeMethods.cs
- GridItemPattern.cs
- Glyph.cs
- OlePropertyStructs.cs
- Model3DGroup.cs
- CodeArgumentReferenceExpression.cs
- IsolatedStoragePermission.cs
- ConnectionManagementElementCollection.cs
- SingleAnimationBase.cs
- ArraySegment.cs
- EncoderParameter.cs
- ActivityFunc.cs
- CodeDirectiveCollection.cs
- Configuration.cs
- __ConsoleStream.cs
- DataGridView.cs
- SettingsPropertyCollection.cs
- NamespaceMapping.cs
- DefaultValueAttribute.cs
- BinaryNode.cs
- PropertyInformation.cs
- WindowsGraphicsCacheManager.cs
- BasicHttpMessageSecurity.cs
- XmlTextReaderImplHelpers.cs
- TrustLevel.cs
- SessionState.cs
- DesignerTransaction.cs
- HtmlTableRow.cs
- GeneralTransform3DGroup.cs
- JsonEncodingStreamWrapper.cs
- KeyboardEventArgs.cs
- ALinqExpressionVisitor.cs
- ValueQuery.cs
- BindingExpression.cs
- InstanceHandle.cs
- GPPOINT.cs
- SqlDependencyUtils.cs
- StateBag.cs
- XmlSchemaFacet.cs
- UpDownBase.cs
- ApplicationServiceHelper.cs
- GridPatternIdentifiers.cs
- PeerName.cs
- CodeSnippetExpression.cs
- CurrencyManager.cs
- PersonalizationEntry.cs
- ComplexPropertyEntry.cs
- CodeDelegateInvokeExpression.cs
- Constants.cs
- Property.cs
- ConnectionPoolManager.cs
- GenericWebPart.cs
- ThumbAutomationPeer.cs
- UxThemeWrapper.cs
- SendActivityEventArgs.cs
- ConfigurationManagerHelper.cs
- CheckBox.cs
- HtmlListAdapter.cs
- CombinedGeometry.cs
- TransactionScope.cs
- ImageFormatConverter.cs
- XmlDocumentType.cs
- ElementNotEnabledException.cs
- RemotingClientProxy.cs
- AppAction.cs
- RectAnimationClockResource.cs
- RectKeyFrameCollection.cs
- ProcessModelInfo.cs
- WorkflowItemsPresenter.cs
- HtmlTableRowCollection.cs
- HostedTransportConfigurationBase.cs
- WpfWebRequestHelper.cs
- WebPartConnectionsEventArgs.cs
- ObjectStateManager.cs
- DefaultBinder.cs
- GenerateTemporaryTargetAssembly.cs
- RunClient.cs
- AppSettingsExpressionBuilder.cs
- SyndicationDeserializer.cs
- SafeNativeMethods.cs
- WebPartMinimizeVerb.cs
- ReadOnlyCollectionBase.cs
- PiiTraceSource.cs
- DoubleCollectionConverter.cs
- SafeFileMappingHandle.cs