Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

183 lines
6.9 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows Media Technologies
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: authen.idl
//
// Contents:
//
//--------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows Media Technologies")
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("// Automatically generated by Midl")
cpp_quote("//")
cpp_quote("// DO NOT EDIT THIS FILE.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if _MSC_VER > 1000")
cpp_quote("#pragma once")
cpp_quote("#endif // _MSC_VER > 1000")
import "oaidl.idl";
import "WMSContext.idl";
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationPlugin , 0xBE185FF9,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationContext , 0xBE185FFA,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationCallback , 0xBE185FFB,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
interface IWMSAuthenticationPlugin;
interface IWMSAuthenticationContext;
interface IWMSAuthenticationCallback;
///////////////////////////////////////////////////////////////////////////////
//
//
///////////////////////////////////////////////////////////////////////////////
[
object,
uuid(BE185FF9-6932-11d2-8B3B-006097B01206),
version(9.0),
pointer_default(unique),
helpstring("Provides methods for retrieving information about an authentication plugin and for accessing the plug-ins IWMSAuthenticationContext object.")
]
interface IWMSAuthenticationPlugin : IUnknown
{
typedef [public] enum WMS_AUTHENTICATION_FLAGS
{
WMS_AUTHENTICATION_TEXT_CHALLENGE = 0x01,
WMS_AUTHENTICATION_CLIENT_SHOWS_UI = 0x02,
WMS_AUTHENTICATION_ANONYMOUS = 0x04,
WMS_AUTHENTICATION_CHALLENGE_FIRST = 0x08,
} WMS_AUTHENTICATION_FLAGS;
//
// Find out the authentication plugin's package name.
//
[helpstring("Called by the server to retrieve the name of the authentication plug-in package.")] HRESULT
GetPackageName( [out,retval] BSTR *pbstrPackageName );
//
// Find out the protocol supported by this authentication response plugin.
// Examples include "Basic", "NTLM", "Digest", "Kerberos", etc...
//
[helpstring("Called by the server to retrieve the name of the protocol used by the authentication plug-in.")] HRESULT
GetProtocolName( [out,retval] BSTR *pbstrProtocolName );
//
// Flags come from WMS_AUTHENTICATION_FLAGS enum list
//
[helpstring("Called by the server to retrieve flags that indicate the credential acquisition support provided by the plug-in.")] HRESULT
GetFlags( [out,retval] long *plFlags );
//
// Create an authentication context which will be used by one session
//
[helpstring("Called by the server to retrieve an authentication context object.")] HRESULT
CreateAuthenticationContext( [out,retval] IWMSAuthenticationContext **ppAuthenCtx );
};
///////////////////////////////////////////////////////////////////////////////
//
//
///////////////////////////////////////////////////////////////////////////////
[
object,
uuid(BE185FFA-6932-11d2-8B3B-006097B01206),
version(9.0),
pointer_default(unique),
helpstring("Provides methods that are used to authenticate a client.")
]
interface IWMSAuthenticationContext : IUnknown
{
//
// Get a pointer to the authentication plugin that implements this context
//
[helpstring("Called by the server to retrieve a pointer to the authentication plug-in that created this authentication context.")] HRESULT
GetAuthenticationPlugin(
[out,retval] IWMSAuthenticationPlugin **ppAuthenPlugin );
//
// Authenticate is the workhorse method that gets invoked one or more
// times throughout an authentication challenge/response sequence
//
[helpstring("Called by the server to verify client credentials.")] HRESULT
Authenticate(
[in] VARIANT ResponseBlob,
[in] IWMSContext *pUserCtx,
[in] IWMSContext *pPresentationCtx,
[in] IWMSCommandContext *pCommandContext,
[in] IWMSAuthenticationCallback *pCallback,
[in] VARIANT Context );
//
// Get the logical user ID (only works if authentication has succeeded).
//
[helpstring("Called by the server to retrieve the logical user ID if authentication succeeds.")] HRESULT
GetLogicalUserID( [out,retval] BSTR *pbstrUserID );
//
// Get the name of the NT security user/group account that this context
// impersonates (only works if authentication has succeeded).
//
[helpstring("Called by the server to retrieve the name of the user account or group associated with this authentication context.")] HRESULT
GetImpersonationAccountName( [out,retval] BSTR *pbstrAccountName );
//
// Get the handle of the NT security user/group account that this context
// impersonates (only works if authentication has succeeded).
//
[helpstring("Called by the server to retrieve an impersonation access token for the user account associated with this authentication context.")] HRESULT
GetImpersonationToken( [out,retval] long *plToken );
};
///////////////////////////////////////////////////////////////////////////////
//
//
///////////////////////////////////////////////////////////////////////////////
[
object,
uuid(BE185FFB-6932-11d2-8B3B-006097B01206),
version(9.0),
pointer_default(unique),
helpstring("Provides a method to notify the server of the results of an authentication request.")
]
interface IWMSAuthenticationCallback : IUnknown
{
///////////////////////////////////////////////////////////////////////////////
//
// Authentication return codes
//
typedef [public] enum WMS_AUTHENTICATION_RESULT
{
WMS_AUTHENTICATION_SUCCESS = 0x01,
WMS_AUTHENTICATION_DENIED = 0x02,
WMS_AUTHENTICATION_CONTINUE = 0x03,
WMS_AUTHENTICATION_ERROR = 0x04
} WMS_AUTHENTICATION_RESULT;
//
// Called as a result of the context's Authenticate method completing.
//
[helpstring("Called by the plug-in to respond when the server calls IWMSAuthenticationContext::Authenticate.")] HRESULT
OnAuthenticateComplete(
[in] WMS_AUTHENTICATION_RESULT AuthResult,
[in] VARIANT ChallengeBlob,
[in] VARIANT Context );
};