CloseCryptoHandleRequest.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / CloseCryptoHandleRequest.cs / 1 / CloseCryptoHandleRequest.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.InfoCards
{ 
    using System;
    using System.Collections; 
    using System.Diagnostics; 
    using System.Threading; //ManualResetEvent
    using System.ComponentModel; //Win32Exception 
    using System.IO; //Stream
    using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace;
    using System.Security.Principal;
 
    //
    // Summary: 
    // Handles a request to close a CryptoSession. 
    //
 
    class CloseCryptoHandleRequest : ClientRequest
    {
        //
        // The cryptosession id we are attaching to. 
        //
        int m_cryptoSession; 
 
        //
        // Sumamry: 
        // Construct an CloseCryptoHandleRequest object
        //
        // Arguments:
        //  callingProcess          - The process in which the caller originated. 
        //  callingIdentity         - The WindowsIdentity of the caller
        //  rpcHandle               - The handle of the native RPC request 
        //  inArgs                  - The stream to read input data from 
        //  outArgs                 - The stream to write output data to
        // 
        public CloseCryptoHandleRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs )
            : base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs )
        {
 
            IDT.TraceDebug( "Intiating an CloseCryptoHandleRequest request" );
        } 
 

        protected override void OnMarshalInArgs() 
        {
            IDT.DebugAssert( null != InArgs, "null inargs" );
            BinaryReader reader = new InfoCardBinaryReader( InArgs );
 
            m_cryptoSession   = reader.ReadInt32();
 
            IDT.ThrowInvalidArgumentConditional( 0 == m_cryptoSession, "cryptoSession" ); 
        }
 
        protected override void OnMarshalOutArgs()
        {
        }
 
        //
        // Summary 
        // Closes a cryptoSession. 
        //
        protected override void OnProcess() 
        {
            CryptoSession session = CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User );

            session.Dispose(); 
        }
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK