File: Configuration\COAUTHINFO.cs
Project: ndp\fx\src\xsp\system\Web\System.Web.csproj (System.Web)
//------------------------------------------------------------------------------
// <copyright file="COAUTHINFO.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
 
namespace System.Web.Configuration {
    using System.Collections;
    using System.Configuration;
    using System.Configuration.Internal;
    using System.Web;
    using System.Web.Util;
    using System.Security;
    using System.IO;
    using System.Web.Hosting;
    using System.Runtime.InteropServices;
    using System.Reflection;
    using System.Collections.Specialized;
    using System.Xml;
    using System.Security.Principal;
    using System.Threading;
    using System.Globalization;
 
    [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
    internal class COAUTHINFO : IDisposable
    {
        internal COAUTHINFO(RpcAuthent authent, RpcAuthor author, string serverprinc, RpcLevel level, RpcImpers impers, IntPtr ciptr) {
            authnsvc = authent;
            authzsvc = author;
            serverprincname = serverprinc;
            authnlevel = level;
            impersonationlevel = impers;
            authidentitydata = ciptr;
        }
 
        internal RpcAuthent authnsvc;
        internal RpcAuthor authzsvc;
        [MarshalAs(UnmanagedType.LPWStr)]
        internal string serverprincname;
        internal RpcLevel authnlevel;
        internal RpcImpers impersonationlevel;
        internal IntPtr authidentitydata;        // COAUTHIDENTITY*
        internal int capabilities = 0;        // EOAC_NONE
 
        void IDisposable.Dispose()
        {
            authidentitydata = IntPtr.Zero;
            GC.SuppressFinalize(this);
        }
        ~COAUTHINFO()
        {
        }
    }
 
    [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
    internal class COAUTHINFO_X64 : IDisposable
    {
        internal COAUTHINFO_X64(RpcAuthent authent, RpcAuthor author, string serverprinc, RpcLevel level, RpcImpers impers, IntPtr ciptr)
        {
            authnsvc = authent;
            authzsvc = author;
            serverprincname = serverprinc;
            authnlevel = level;
            impersonationlevel = impers;
            authidentitydata = ciptr;
        }
 
        internal RpcAuthent authnsvc;
        internal RpcAuthor authzsvc;
        [MarshalAs(UnmanagedType.LPWStr)]
        internal string serverprincname;
        internal RpcLevel authnlevel;
        internal RpcImpers impersonationlevel;
        internal IntPtr authidentitydata;        // COAUTHIDENTITY*
        internal int capabilities = 0;        // EOAC_NONE
#pragma warning disable 0649
        internal int padding;
#pragma warning restore 0649
 
        void IDisposable.Dispose()
        {
            authidentitydata = IntPtr.Zero;
            GC.SuppressFinalize(this);
        }
        ~COAUTHINFO_X64()
        {
        }
    }
}