|
|
// ChooseServerSitePages.cpp: implementation of the CChooseServerSitePages class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "certwiz.h"
#include "Certificat.h"
#include "Certutil.h"
#include "ChooseServerSite.h"
#include "ChooseServerSitePages.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW
#endif
static BOOL AnswerIsYes3(UINT id) { CString strMessage; strMessage.LoadString(id); return (IDYES == AfxMessageBox(strMessage, MB_ICONEXCLAMATION | MB_YESNO | MB_DEFBUTTON2)); }
/////////////////////////////////////////////////////////////////////////////
// CChooseServerSitePages property page
IMPLEMENT_DYNCREATE(CChooseServerSitePages, CIISWizardPage)
CChooseServerSitePages::CChooseServerSitePages(CCertificate * pCert) : CIISWizardPage(CChooseServerSitePages::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(CChooseServerSitePages)
m_ServerSiteInstance = 0; m_ServerSiteInstancePath = _T(""); m_ServerSiteDescription = _T(""); //}}AFX_DATA_INIT
}
CChooseServerSitePages::~CChooseServerSitePages() { }
void CChooseServerSitePages::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CChooseServerSitePages)
DDX_Text(pDX, IDC_SERVER_SITE_NAME, m_ServerSiteInstance); //}}AFX_DATA_MAP
}
LRESULT CChooseServerSitePages::OnWizardBack() /*++
Routine Description: Prev button handler
Arguments: None
Return Value: 0 to automatically advance to the prev page; 1 to prevent the page from changing. To jump to a page other than the prev one, return the identifier of the dialog to be displayed. --*/ { return IDD_PAGE_PREV; }
LRESULT CChooseServerSitePages::OnWizardNext() { LRESULT lres = 1; BOOL bCertificateExists = FALSE; CString csInstanceName; CString UserPassword_Remote; m_ServerSiteInstance = -1; UpdateData(TRUE);
m_pCert->m_UserPassword_Remote.CopyTo(UserPassword_Remote);
if (m_ServerSiteInstance != -1) { // Get the site # and create an instance path
csInstanceName = ReturnGoodMetabaseServerPath(m_pCert->m_WebSiteInstanceName); csInstanceName += _T("/%d");
m_ServerSiteInstancePath.Format(csInstanceName,m_ServerSiteInstance); m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
// Check if this is a local to local copy that
// we are not copy/moving to the same local site that we're on!
if (TRUE == IsMachineLocal(m_pCert->m_MachineName_Remote, m_pCert->m_UserName_Remote, UserPassword_Remote)) { CString SiteToExclude = m_pCert->m_WebSiteInstanceName; CString SiteToLookAt = m_ServerSiteInstancePath;
// We are on the local machine!!!
// make sure it's not the same web site
// if it is then popup a msgbox!!!!!!
if (SiteToLookAt.Left(1) == _T("/")) { if (SiteToExclude.Left(1) != _T("/")) {SiteToExclude = _T("/") + SiteToExclude;} } if (SiteToLookAt.Right(1) == _T("/")) { if (SiteToExclude.Right(1) != _T("/")) {SiteToExclude = SiteToExclude + _T("/");} }
if (0 == _tcsicmp(SiteToLookAt,SiteToExclude)) { // Cannot do this, popup messagebox
AfxMessageBox(IDS_NOT_TO_ITSELF); lres = 1; goto CChooseServerSitePages_OnWizardNext_Exit; } }
// Check if the specified path actually exists!!!!!!!
if (FALSE == IsWebSiteExistRemote(m_pCert->m_MachineName_Remote, m_pCert->m_UserName_Remote, UserPassword_Remote, m_ServerSiteInstancePath, &bCertificateExists)) { AfxMessageBox(IDS_SITE_NOT_EXIST); lres = 1; } else { // Check if Certificate Exist...
if (!bCertificateExists) { AfxMessageBox(IDS_CERT_NOT_EXIST_ON_SITE); lres = 1; } else { if (m_pCert->m_DeleteAfterCopy) { lres = IDD_PAGE_NEXT2; } else { lres = IDD_PAGE_NEXT; }
// Get info for that cert from remote site...
CERT_DESCRIPTION desc; CString MachineName_Remote = m_pCert->m_MachineName_Remote; CString UserName_Remote = m_pCert->m_UserName_Remote; GetCertDescInfo(MachineName_Remote,UserName_Remote,UserPassword_Remote,m_ServerSiteInstancePath,&desc);
m_pCert->m_CommonName = desc.m_CommonName; m_pCert->m_FriendlyName = desc.m_FriendlyName; m_pCert->m_Country = desc.m_Country; m_pCert->m_State = desc.m_State; m_pCert->m_Locality = desc.m_Locality; m_pCert->m_Organization = desc.m_Organization; m_pCert->m_OrganizationUnit = desc.m_OrganizationUnit; m_pCert->m_CAName = desc.m_CAName; m_pCert->m_ExpirationDate = desc.m_ExpirationDate; m_pCert->m_Usage = desc.m_Usage; } } }
CChooseServerSitePages_OnWizardNext_Exit: return lres; }
BOOL CChooseServerSitePages::OnSetActive() { ASSERT(m_pCert != NULL); m_ServerSiteInstancePath = m_pCert->m_WebSiteInstanceName_Remote; m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
UpdateData(FALSE); SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); return CIISWizardPage::OnSetActive(); }
BOOL CChooseServerSitePages::OnKillActive() { //UpdateData();
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath; return CIISWizardPage::OnKillActive(); }
BEGIN_MESSAGE_MAP(CChooseServerSitePages, CIISWizardPage) //{{AFX_MSG_MAP(CChooseServerSitePages)
ON_EN_CHANGE(IDC_SERVER_SITE_NAME, OnEditchangeServerSiteName) ON_BN_CLICKED(IDC_BROWSE_BTN, OnBrowseForMachineWebSite) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSiteNamePage message handlers
void CChooseServerSitePages::OnEditchangeServerSiteName() { UpdateData(TRUE); SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); CString str; SetDlgItemText(IDC_ERROR_TEXT, str); }
void CChooseServerSitePages::OnBrowseForMachineWebSite() { CString strWebSite;
CChooseServerSite dlg(TRUE,strWebSite,m_pCert); if (dlg.DoModal() == IDOK) { // Get the one that they selected...
strWebSite = dlg.m_strSiteReturned; m_ServerSiteInstancePath = strWebSite; m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath); CString Temp; Temp.Format(_T("%d"),m_ServerSiteInstance); SetDlgItemText(IDC_SERVER_SITE_NAME, Temp); }
return; }
/////////////////////////////////////////////////////////////////////////////
// CChooseServerSitePages property page
IMPLEMENT_DYNCREATE(CChooseServerSitePagesTo, CIISWizardPage)
CChooseServerSitePagesTo::CChooseServerSitePagesTo(CCertificate * pCert) : CIISWizardPage(CChooseServerSitePagesTo::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(CChooseServerSitePagesTo)
m_ServerSiteInstance = 0; m_ServerSiteInstancePath = _T(""); m_ServerSiteDescription = _T(""); //}}AFX_DATA_INIT
}
CChooseServerSitePagesTo::~CChooseServerSitePagesTo() { }
void CChooseServerSitePagesTo::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CChooseServerSitePagesTo)
DDX_Text(pDX, IDC_SERVER_SITE_NAME, m_ServerSiteInstance); //}}AFX_DATA_MAP
}
LRESULT CChooseServerSitePagesTo::OnWizardBack() /*++
Routine Description: Prev button handler
Arguments: None
Return Value: 0 to automatically advance to the prev page; 1 to prevent the page from changing. To jump to a page other than the prev one, return the identifier of the dialog to be displayed. --*/ { return IDD_PAGE_PREV; }
LRESULT CChooseServerSitePagesTo::OnWizardNext() { LRESULT lres = 1; BOOL bCertificateExists = FALSE; CString csInstanceName; CString UserPassword_Remote; m_ServerSiteInstance = -1; UpdateData(TRUE);
m_pCert->m_UserPassword_Remote.CopyTo(UserPassword_Remote); if (m_ServerSiteInstance != -1) { lres = IDD_PAGE_NEXT; // Get the site # and create an instance path
csInstanceName = ReturnGoodMetabaseServerPath(m_pCert->m_WebSiteInstanceName); csInstanceName += _T("/%d");
m_ServerSiteInstancePath.Format(csInstanceName,m_ServerSiteInstance); m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath;
// Check if this is a local to local copy that
// we are not copy/moving to the same local site that we're on!
if (TRUE == IsMachineLocal(m_pCert->m_MachineName_Remote, m_pCert->m_UserName_Remote, UserPassword_Remote)) { CString SiteToExclude = m_pCert->m_WebSiteInstanceName; CString SiteToLookAt = m_ServerSiteInstancePath;
// We are on the local machine!!!
// make sure it's not the same web site
// if it is then popup a msgbox!!!!!!
if (SiteToLookAt.Left(1) == _T("/")) { if (SiteToExclude.Left(1) != _T("/")) {SiteToExclude = _T("/") + SiteToExclude;} } if (SiteToLookAt.Right(1) == _T("/")) { if (SiteToExclude.Right(1) != _T("/")) {SiteToExclude = SiteToExclude + _T("/");} }
if (0 == _tcsicmp(SiteToLookAt,SiteToExclude)) { // Cannot do this, popup messagebox
AfxMessageBox(IDS_NOT_TO_ITSELF); lres = 1; goto CChooseServerSitePagesTo_OnWizardNext_Exit; } }
// Check if the specified path actually exists!!!!!!!
if (FALSE == IsWebSiteExistRemote(m_pCert->m_MachineName_Remote, m_pCert->m_UserName_Remote, UserPassword_Remote, m_ServerSiteInstancePath, &bCertificateExists)) { AfxMessageBox(IDS_SITE_NOT_EXIST); lres = 1; } else { lres = 1; BOOL ProceedWithCopyMove = FALSE;
// Check if Certificate Exist...
if (bCertificateExists) { if (TRUE == AnswerIsYes3(IDS_CERT_EXISTS_OVERWRITE)) { ProceedWithCopyMove = TRUE; } else { ProceedWithCopyMove = FALSE; } } else { ProceedWithCopyMove = TRUE; }
if (TRUE == ProceedWithCopyMove) { if (m_pCert->m_DeleteAfterCopy) { lres = IDD_PAGE_NEXT2; } else { lres = IDD_PAGE_NEXT; } } } }
CChooseServerSitePagesTo_OnWizardNext_Exit: return lres; }
BOOL CChooseServerSitePagesTo::OnSetActive() { ASSERT(m_pCert != NULL);
m_ServerSiteInstancePath = m_pCert->m_WebSiteInstanceName_Remote; m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath);
UpdateData(FALSE); SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); return CIISWizardPage::OnSetActive(); }
BOOL CChooseServerSitePagesTo::OnKillActive() { //UpdateData();
m_pCert->m_WebSiteInstanceName_Remote = m_ServerSiteInstancePath; return CIISWizardPage::OnKillActive(); }
BEGIN_MESSAGE_MAP(CChooseServerSitePagesTo, CIISWizardPage) //{{AFX_MSG_MAP(CChooseServerSitePagesTo)
ON_EN_CHANGE(IDC_SERVER_SITE_NAME, OnEditchangeServerSiteName) ON_BN_CLICKED(IDC_BROWSE_BTN, OnBrowseForMachineWebSite) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSiteNamePage message handlers
void CChooseServerSitePagesTo::OnEditchangeServerSiteName() { UpdateData(TRUE); SetWizardButtons(m_ServerSiteInstance <=0 ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); CString str; SetDlgItemText(IDC_ERROR_TEXT, str); }
void CChooseServerSitePagesTo::OnBrowseForMachineWebSite() { CString strWebSite;
CChooseServerSite dlg(FALSE,strWebSite,m_pCert); if (dlg.DoModal() == IDOK) { // Get the one that they selected...
strWebSite = dlg.m_strSiteReturned; m_ServerSiteInstancePath = strWebSite; m_ServerSiteInstance = CMetabasePath::GetInstanceNumber(m_ServerSiteInstancePath); CString Temp; Temp.Format(_T("%d"),m_ServerSiteInstance); SetDlgItemText(IDC_SERVER_SITE_NAME, Temp); }
return; }
|