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.
 
 
 
 
 
 

79 lines
1.9 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1996.
//
// File: AUTHENT.HXX
//
// Contents: Definitions for code to handle multiplexing multiple
// concurrent IAuthenticate interfaces.
//
// Classes: CBasicAuthHolder
//
// Functions:
//
// History: 02-05-96 JoeS (Joe Souza) Created
//
//----------------------------------------------------------------------------
#ifndef _AUTHENT_HXX_
#define _AUTHENT_HXX_
class CBasicAuthNode;
class CBasicAuthNode
{
public:
CBasicAuthNode(IAuthenticate *pIBasicAuth)
{
_pIBasicAuth = pIBasicAuth;
_pNext = NULL;
}
IAuthenticate *GetBasicAuthentication()
{
return _pIBasicAuth;
}
CBasicAuthNode *GetNextNode()
{
return _pNext;
}
void SetNextNode(CBasicAuthNode *pNext)
{
_pNext = pNext;
}
private:
IAuthenticate * _pIBasicAuth; // Pointer to caller's IAuthenticate.
CBasicAuthNode * _pNext;
};
class CBasicAuthHolder : public IAuthenticate
{
public:
CBasicAuthHolder(void);
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
STDMETHOD_(ULONG,AddRef) (THIS);
STDMETHOD_(ULONG,Release) (THIS);
// *** IAuthenticate methods ***
STDMETHOD(Authenticate) (
HWND* phwnd,
LPWSTR *pszUsername,
LPWSTR *pszPassword);
// *** Helper functions ***
STDMETHOD(AddNode) (IAuthenticate *IBasicAuth);
private:
STDMETHOD(RemoveAllNodes) (void);
CRefCount _CRefs;
// BUGBUG: have node of 5 elements or so!
CBasicAuthNode *_pCBasicAuthNode;
LONG _cElements;
};
#endif //_AUTHENT_HXX_