windows-nt/Source/XPSP1/NT/ds/security/passport/pmconfig/filecfg.cpp

419 lines
14 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/**************************************************************************
Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
MODULE: FILECFG.CPP
PURPOSE: Source module reading/writing PM config sets from a file
FUNCTIONS:
COMMENTS:
**************************************************************************/
/**************************************************************************
Include Files
**************************************************************************/
#include "pmcfg.h"
#define MAX_EXT 10
#define MAX_FILTER 256
TCHAR g_szPassportManager[] = "PassportManager";
/**************************************************************************
PMAdmin_GetFileName
*******************************************************************************/
BOOL PMAdmin_GetFileName
(
HWND hWnd,
BOOL fOpen,
LPTSTR lpFileName,
DWORD cbFileName
)
{
UINT TitleStringID, FilterID;
TCHAR szTitle[MAX_TITLE];
TCHAR szDefaultExtension[MAX_EXT];
TCHAR szFilter[MAX_FILTER];
LPTSTR lpFilterChar;
OPENFILENAME OpenFileName;
BOOL fSuccess;
//
// Load various strings that will be displayed and used by the common open
// or save dialog box. Note that if any of these fail, the error is not
// fatal-- the common dialog box may look odd, but will still work.
//
if (fOpen)
{
TitleStringID = IDS_OPENFILETITLE;
FilterID = IDS_PMOPENFILEFILTER;
}
else
{
TitleStringID = IDS_SAVEFILETITLE;
FilterID = IDS_PMSAVEFILEFILTER;
}
LoadString(g_hInst, TitleStringID, szTitle, sizeof(szTitle));
LoadString(g_hInst, IDS_PMCONFIGDEFEXT, szDefaultExtension, sizeof(szDefaultExtension));
if (LoadString(g_hInst, FilterID, szFilter, sizeof(szFilter)))
{
//
// The common dialog library requires that the substrings of the
// filter string be separated by nulls, but we cannot load a string
// containing nulls. So we use some dummy character in the resource
// that we now convert to nulls.
//
for (lpFilterChar = szFilter;
*lpFilterChar != 0;
lpFilterChar = CharNext(lpFilterChar))
{
if (*lpFilterChar == TEXT('#'))
*lpFilterChar++ = 0;
}
}
ZeroMemory(&OpenFileName, sizeof(OPENFILENAME));
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = hWnd;
OpenFileName.hInstance = g_hInst;
OpenFileName.lpstrFilter = szFilter;
OpenFileName.lpstrFile = lpFileName;
OpenFileName.nMaxFile = cbFileName;
OpenFileName.lpstrTitle = szTitle;
OpenFileName.lpstrDefExt = szDefaultExtension;
if (fOpen)
{
OpenFileName.Flags = OFN_HIDEREADONLY | OFN_EXPLORER | OFN_FILEMUSTEXIST;
fSuccess = GetOpenFileName(&OpenFileName);
}
else
{
OpenFileName.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |
OFN_EXPLORER | OFN_NOREADONLYRETURN | OFN_PATHMUSTEXIST;
fSuccess = GetSaveFileName(&OpenFileName);
}
return fSuccess;
}
/**************************************************************************
ReadFileConfigSet
Read the current passport manager config set from the specified file
**************************************************************************/
BOOL ReadFileConfigSet
(
LPPMSETTINGS lpPMConfig,
LPCTSTR lpszFileName
)
{
DWORD dwTemp;
TCHAR achTemp[INTERNET_MAX_URL_LENGTH];
// makesure the specified file exists.
if (!PathFileExists(lpszFileName))
{
ReportError(NULL, IDS_FILENOTFOUND);
return FALSE;
}
// Read the Time Window Number
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szTimeWindow,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwTimeWindow = dwTemp;
// Read the value for Forced Signin
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szForceSignIn,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwForceSignIn = dwTemp;
// Read the default language ID
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szLanguageID,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwLanguageID = dwTemp;
// Get the co-branding template
GetPrivateProfileString(g_szPassportManager,
g_szCoBrandTemplate,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szCoBrandTemplate, achTemp);
// Get the SiteID
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szSiteID,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwSiteID = dwTemp;
// Get the return URL template
GetPrivateProfileString(g_szPassportManager,
g_szReturnURL,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szReturnURL, achTemp);
// Get the ticket cookie domain
GetPrivateProfileString(g_szPassportManager,
g_szTicketDomain,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szTicketDomain, achTemp);
// Get the ticket cookie path
GetPrivateProfileString(g_szPassportManager,
g_szTicketPath,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szTicketPath, achTemp);
// Get the profile cookie domain
GetPrivateProfileString(g_szPassportManager,
g_szProfileDomain,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szProfileDomain, achTemp);
// Get the profile cookie path
GetPrivateProfileString(g_szPassportManager,
g_szProfilePath,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szProfilePath, achTemp);
// Get the secure cookie domain
GetPrivateProfileString(g_szPassportManager,
g_szSecureDomain,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szSecureDomain, achTemp);
// Get the secure cookie path
GetPrivateProfileString(g_szPassportManager,
g_szSecurePath,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szSecurePath, achTemp);
// Get the DisasterURL
GetPrivateProfileString(g_szPassportManager,
g_szDisasterURL,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szDisasterURL, achTemp);
// Get Standalone mode setting
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szStandAlone,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwStandAlone = dwTemp;
// Get DisableCookies mode setting
dwTemp = GetPrivateProfileInt(g_szPassportManager,
g_szDisableCookies,
-1,
lpszFileName);
if(dwTemp != -1)
lpPMConfig->dwDisableCookies = dwTemp;
// Get the HostName
GetPrivateProfileString(g_szPassportManager,
g_szHostName,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szHostName, achTemp);
// Get the HostIP
GetPrivateProfileString(g_szPassportManager,
g_szHostIP,
(LPTSTR)TEXT("\xFF"),
achTemp,
sizeof(achTemp),
lpszFileName);
if(lstrcmp(achTemp, TEXT("\xFF")) != 0)
lstrcpy(lpPMConfig->szHostIP, achTemp);
return TRUE;
}
/**************************************************************************
WriteFileConfigSet
Writes the current passport manager config set to the specified file
**************************************************************************/
BOOL WriteFileConfigSet
(
LPPMSETTINGS lpPMConfig,
LPCTSTR lpszFileName
)
{
TCHAR szTemp[MAX_PATH];
// Write the Time Window Number
wsprintf (szTemp, "%d", lpPMConfig->dwTimeWindow);
WritePrivateProfileString(g_szPassportManager,
g_szTimeWindow,
szTemp,
lpszFileName);
// write the value for Forced Signin
wsprintf (szTemp, "%d", lpPMConfig->dwForceSignIn);
WritePrivateProfileString(g_szPassportManager,
g_szForceSignIn,
szTemp,
lpszFileName);
// Read the default language ID
wsprintf (szTemp, "%d", lpPMConfig->dwLanguageID);
WritePrivateProfileString(g_szPassportManager,
g_szLanguageID,
szTemp,
lpszFileName);
// Write the co-branding template
WritePrivateProfileString(g_szPassportManager,
g_szCoBrandTemplate,
lpPMConfig->szCoBrandTemplate,
lpszFileName);
// Write the SiteID
wsprintf (szTemp, "%d",lpPMConfig->dwSiteID);
WritePrivateProfileString(g_szPassportManager,
g_szSiteID,
szTemp,
lpszFileName);
// Write the return URL template
WritePrivateProfileString(g_szPassportManager,
g_szReturnURL,
lpPMConfig->szReturnURL,
lpszFileName);
// Write the ticket cookie domain
WritePrivateProfileString(g_szPassportManager,
g_szTicketDomain,
lpPMConfig->szTicketDomain,
lpszFileName);
// Write the ticket cookie path
WritePrivateProfileString(g_szPassportManager,
g_szTicketPath,
lpPMConfig->szTicketPath,
lpszFileName);
// Write the profile cookie domain
WritePrivateProfileString(g_szPassportManager,
g_szProfileDomain,
lpPMConfig->szProfileDomain,
lpszFileName);
// Write the profile cookie path
WritePrivateProfileString(g_szPassportManager,
g_szProfilePath,
lpPMConfig->szProfilePath,
lpszFileName);
// Write the secure cookie domain
WritePrivateProfileString(g_szPassportManager,
g_szSecureDomain,
lpPMConfig->szSecureDomain,
lpszFileName);
// Write the secure profile cookie path
WritePrivateProfileString(g_szPassportManager,
g_szSecurePath,
lpPMConfig->szSecurePath,
lpszFileName);
// Write the Disaster URL
WritePrivateProfileString(g_szPassportManager,
g_szDisasterURL,
lpPMConfig->szDisasterURL,
lpszFileName);
// Write Standalone mode setting
wsprintf (szTemp, "%d", lpPMConfig->dwStandAlone);
WritePrivateProfileString(g_szPassportManager,
g_szStandAlone,
szTemp,
lpszFileName);
// Write DisableCookies mode setting
wsprintf (szTemp, "%d", lpPMConfig->dwDisableCookies);
WritePrivateProfileString(g_szPassportManager,
g_szDisableCookies,
szTemp,
lpszFileName);
// Write the Host Name
WritePrivateProfileString(g_szPassportManager,
g_szHostName,
lpPMConfig->szHostName,
lpszFileName);
// Write the Host IP
WritePrivateProfileString(g_szPassportManager,
g_szHostIP,
lpPMConfig->szHostIP,
lpszFileName);
return TRUE;
}