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
- TraceProvider.cs
- PointUtil.cs
- RawStylusInputCustomData.cs
- DictionaryKeyPropertyAttribute.cs
- SqlWriter.cs
- APCustomTypeDescriptor.cs
- ByeOperationCD1AsyncResult.cs
- GatewayIPAddressInformationCollection.cs
- WindowsBrush.cs
- RawMouseInputReport.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompoundFileStorageReference.cs
- ContainerSelectorBehavior.cs
- XhtmlBasicListAdapter.cs
- IndexedEnumerable.cs
- IndexedString.cs
- LayoutEditorPart.cs
- CustomTrackingQuery.cs
- WebScriptMetadataFormatter.cs
- PresentationAppDomainManager.cs
- InternalMappingException.cs
- StateValidator.cs
- XmlText.cs
- Substitution.cs
- ContentValidator.cs
- XmlUTF8TextWriter.cs
- SessionIDManager.cs
- DataGridSortCommandEventArgs.cs
- ClientSideQueueItem.cs
- TraceListeners.cs
- TemplatePartAttribute.cs
- MouseDevice.cs
- Internal.cs
- DbConnectionFactory.cs
- DataSourceCache.cs
- GridPatternIdentifiers.cs
- TerminatorSinks.cs
- UdpRetransmissionSettings.cs
- Rect.cs
- Misc.cs
- ConsoleKeyInfo.cs
- BamlRecords.cs
- FileLoadException.cs
- InstanceHandleConflictException.cs
- ContractListAdapter.cs
- BamlStream.cs
- InheritanceContextHelper.cs
- ParameterBuilder.cs
- Int64.cs
- HierarchicalDataSourceConverter.cs
- GenerateScriptTypeAttribute.cs
- PanningMessageFilter.cs
- DateTimeStorage.cs
- BitmapEffectDrawingContextState.cs
- SelectionEditor.cs
- DataBoundLiteralControl.cs
- WeakReferenceKey.cs
- XPathChildIterator.cs
- LoadRetryConstantStrategy.cs
- TimelineCollection.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ResourcesGenerator.cs
- CheckBoxField.cs
- AppSettingsSection.cs
- ItemCheckedEvent.cs
- SQLInt16Storage.cs
- AudioLevelUpdatedEventArgs.cs
- ScriptDescriptor.cs
- UInt64Storage.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- TypeReference.cs
- Drawing.cs
- XmlSchemaSet.cs
- HttpEncoderUtility.cs
- DataGridViewComboBoxEditingControl.cs
- TaskFileService.cs
- embossbitmapeffect.cs
- PinnedBufferMemoryStream.cs
- DbUpdateCommandTree.cs
- ConfigurationCollectionAttribute.cs
- IntegerValidator.cs
- OracleCommandSet.cs
- RayMeshGeometry3DHitTestResult.cs
- XmlObjectSerializerWriteContext.cs
- CacheRequest.cs
- WebPartsPersonalization.cs
- CompilerError.cs
- EndOfStreamException.cs
- BooleanAnimationBase.cs
- LocatorManager.cs
- Utilities.cs
- ContractListAdapter.cs
- UriTemplatePathSegment.cs
- FileInfo.cs
- PointAnimation.cs
- ObjectConverter.cs
- Size3DValueSerializer.cs
- XmlSchemaImport.cs
- TcpClientChannel.cs
- ElementAction.cs