113 lines
3.9 KiB
C
113 lines
3.9 KiB
C
|
#ifndef _INC_DSKQUOTA_NTDS_H
|
||
|
#define _INC_DSKQUOTA_NTDS_H
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
/* File: ntds.h
|
||
|
|
||
|
Description: Contains declaration for class NTDS.
|
||
|
This class provides a simple wrapper around NT Directory Service
|
||
|
name translation features. It has no data and no virtual functions.
|
||
|
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
Date Description Programmer
|
||
|
-------- --------------------------------------------------- ----------
|
||
|
06/01/97 Initial creation. BrianAu
|
||
|
*/
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#ifndef __SSPI_H__
|
||
|
# define SECURITY_WIN32
|
||
|
# include <security.h> // For TranslateName
|
||
|
#endif
|
||
|
|
||
|
|
||
|
class NTDS
|
||
|
{
|
||
|
public:
|
||
|
NTDS(VOID) { }
|
||
|
~NTDS(VOID) { }
|
||
|
|
||
|
HRESULT LookupAccountByName(
|
||
|
LPCTSTR pszSystem,
|
||
|
LPCTSTR pszLogonName,
|
||
|
CString *pstrContainerName,
|
||
|
CString *pstrDisplayName,
|
||
|
PSID pSid,
|
||
|
LPDWORD pdwSid,
|
||
|
PSID_NAME_USE peUse);
|
||
|
|
||
|
HRESULT LookupAccountBySid(
|
||
|
LPCTSTR pszSystem,
|
||
|
PSID pSid,
|
||
|
CString *pstrContainerName,
|
||
|
CString *pstrLogonName,
|
||
|
CString *pstrDisplayName,
|
||
|
PSID_NAME_USE peUse);
|
||
|
|
||
|
|
||
|
HRESULT TranslateFQDNsToLogonNames(
|
||
|
const CArray<CString>& rgstrFQDNs,
|
||
|
CArray<CString> *prgstrLogonNames);
|
||
|
|
||
|
HRESULT TranslateFQDNToLogonName(
|
||
|
LPCTSTR pszFQDN,
|
||
|
CString *pstrLogonName);
|
||
|
|
||
|
static void CreateSamLogonName(LPCTSTR pszSamDomain, LPCTSTR pszSamUser, CString *pstrSamLogonName);
|
||
|
static LPCTSTR FindFQDNInADsPath(LPCTSTR pszADsPath);
|
||
|
static LPCTSTR FindSamAccountInADsPath(LPCTSTR pszADsPath);
|
||
|
|
||
|
|
||
|
private:
|
||
|
HRESULT LookupSamAccountName(
|
||
|
LPCTSTR pszSystem,
|
||
|
LPCTSTR pszLogonName,
|
||
|
CString *pstrContainerName,
|
||
|
CString *pstrDisplayName,
|
||
|
PSID pSid,
|
||
|
LPDWORD pdwSid,
|
||
|
PSID_NAME_USE peUse);
|
||
|
|
||
|
HRESULT LookupDsAccountName(
|
||
|
LPCTSTR pszSystem,
|
||
|
LPCTSTR pszLogonName,
|
||
|
CString *pstrContainerName,
|
||
|
CString *pstrDisplayName,
|
||
|
PSID pSid,
|
||
|
LPDWORD pdwSid,
|
||
|
PSID_NAME_USE peUse);
|
||
|
|
||
|
|
||
|
HRESULT GetSamAccountDisplayName(
|
||
|
LPCTSTR pszLogonName,
|
||
|
CString *pstrDisplayName);
|
||
|
|
||
|
|
||
|
HRESULT GetDsAccountDisplayName(
|
||
|
LPCTSTR pszLogonName,
|
||
|
CString *pstrDisplayName);
|
||
|
|
||
|
HRESULT TranslateNameInternal(
|
||
|
LPCTSTR pszAccountName,
|
||
|
EXTENDED_NAME_FORMAT AccountNameFormat,
|
||
|
EXTENDED_NAME_FORMAT DesiredNameFormat,
|
||
|
CString *pstrTranslatedName);
|
||
|
|
||
|
HRESULT LookupAccountNameInternal(
|
||
|
LPCTSTR pszSystemName,
|
||
|
LPCTSTR pszAccountName,
|
||
|
PSID Sid,
|
||
|
LPDWORD pcbSid,
|
||
|
CString *pstrReferencedDomainName,
|
||
|
PSID_NAME_USE peUse);
|
||
|
|
||
|
HRESULT LookupAccountSidInternal(
|
||
|
LPCTSTR pszSystemName,
|
||
|
PSID Sid,
|
||
|
CString *pstrName,
|
||
|
CString *pstrReferencedDomainName,
|
||
|
PSID_NAME_USE peUse);
|
||
|
};
|
||
|
|
||
|
#endif // _INC_DSKQUOTA_NTDS_H
|