windows-nt/Source/XPSP1/NT/net/mmc/mprsnap/radcfg.h
2020-09-26 16:20:57 +08:00

347 lines
8.7 KiB
C++

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1998 - 1999 **/
/**********************************************************************/
/*
radcfg.h
Header file for RADIUS config obj.
FILE HISTORY:
*/
#include "resource.h" // main symbols
#ifndef _DIALOG_H_
#include "dialog.h"
#endif
#ifndef _RADBAL_H_
#include "radbal.h"
#endif
/*---------------------------------------------------------------------------
Class: RadiusServerDialog
Class for the RADIUS authentication server dialog.
---------------------------------------------------------------------------*/
class RadiusServerDialog : public CBaseDialog
{
public:
RadiusServerDialog(BOOL fAuth, UINT idsTitle);
~RadiusServerDialog();
void SetServer(LPCTSTR pszServerName);
// Dialog Data
//{{AFX_DATA(RadiusServerDialog)
enum { IDD = IDD_RADIUS_AUTH };
CListCtrl m_ListServers;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(RadiusServerDialog)
public:
virtual void OnOK();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(RadiusServerDialog)
virtual BOOL OnInitDialog();
afx_msg void OnBtnAdd();
afx_msg void OnBtnEdit();
afx_msg void OnBtnDelete();
afx_msg void OnListDblClk(NMHDR *pNMHdr, LRESULT *pResult);
afx_msg void OnNotifyListItemChanged(NMHDR *pNMHdr, LRESULT *pResult);
// afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
// afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CRadiusServers m_ServerList;
// This is the other list (if this is the auth dlg, this is the acct list)
// and vice versa. This is used to determine if a server's LSA entry
// needs to be removed.
CRadiusServers m_OtherServerList;
CString m_stServerName;
HKEY m_hkeyMachine;
UINT m_idsTitle;
BOOL m_fAuthDialog; // are we looking at auth or acct?
};
/*---------------------------------------------------------------------------
Class: ServerPropDialog
---------------------------------------------------------------------------*/
class ServerPropDialog : public CBaseDialog
{
// Construction
public:
ServerPropDialog(BOOL fEdit, CWnd* pParent = NULL); // standard constructor
~ServerPropDialog();
protected:
ServerPropDialog(BOOL fEdit, UINT idd, CWnd* pParent = NULL); // standard constructor
public:
VOID SetDefault(RADIUSSERVER *pServer);
VOID GetDefault(RADIUSSERVER *pServer);
// Dialog Data
//{{AFX_DATA(ServerPropDialog)
enum { IDD = IDD_RADIUS_AUTH_CONFIG };
CEdit m_editServerName;
CEdit m_editSecret;
CEdit m_editInterval;
CSpinButtonCtrl m_spinScore;
CSpinButtonCtrl m_spinTimeout;
CEdit m_editPort;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(ServerPropDialog)
public:
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
BOOL m_fEdit; // = TRUE if editing (else we are adding)
UINT m_uAuthPort;
CString m_stSecret;
INT m_cchSecret;
UCHAR m_ucSeed;
CString m_stServer;
UINT m_uTimeout;
int m_iInitScore;
BOOL m_fUseDigitalSignatures;
// The accounting data is also stored here (but not used)
UINT m_uAcctPort;
BOOL m_fAccountingOnOff;
// Generated message map functions
//{{AFX_MSG(ServerPropDialog)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnBtnPassword();
// afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
// afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/*---------------------------------------------------------------------------
Class: RADIUSSecretDialog
---------------------------------------------------------------------------*/
class RADIUSSecretDialog : public CBaseDialog
{
// Construction
public:
RADIUSSecretDialog(CWnd* pParent = NULL); // standard constructor
~RADIUSSecretDialog();
VOID GetSecret(CString *pst, INT *pch, UCHAR *pucSeed);
// Dialog Data
//{{AFX_DATA(RADIUSSecretDialog)
enum { IDD = IDD_CHANGE_SECRET };
CEdit m_editSecretOld;
CEdit m_editSecretNew;
CEdit m_editSecretNewConfirm;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(RADIUSSecretDialog)
public:
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
INT m_cchOldSecret;
CString m_stOldSecret;
UCHAR m_ucOldSeed;
INT m_cchNewSecret;
CString m_stNewSecret;
UCHAR m_ucNewSeed;
// Generated message map functions
//{{AFX_MSG(RADIUSSecretDialog)
virtual BOOL OnInitDialog();
virtual void OnOK();
// afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
// afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/*---------------------------------------------------------------------------
Class: RouterAuthRadiusConfig
This is the config object for RADIUS.
Author: KennT
---------------------------------------------------------------------------*/
class RouterAuthRadiusConfig :
public IAuthenticationProviderConfig,
public CComObjectRoot,
public CComCoClass<RouterAuthRadiusConfig, &CLSID_RouterAuthRADIUS>
{
public:
DECLARE_REGISTRY(RouterAuthRadiusConfig,
_T("RouterAuthRadiusConfig.RouterAuthRadiusConfig.1"),
_T("RouterAuthRadiusConfig.RouterAuthRadiusConfig"),
IDS_RADIUS_CONFIG_DESC,
THREADFLAGS_APARTMENT)
BEGIN_COM_MAP(RouterAuthRadiusConfig)
COM_INTERFACE_ENTRY(IAuthenticationProviderConfig) // Must have one static entry
END_COM_MAP()
DECLARE_NOT_AGGREGATABLE(RouterAuthRadiusConfig)
// these must be overridden to provide values to the base class
protected:
DeclareIAuthenticationProviderConfigMembers(IMPL);
};
/*---------------------------------------------------------------------------
Class: RouterAcctRadiusConfig
This is the config object for RADIUS.
Author: KennT
---------------------------------------------------------------------------*/
class RouterAcctRadiusConfig :
public IAccountingProviderConfig,
public CComObjectRoot,
public CComCoClass<RouterAcctRadiusConfig, &CLSID_RouterAcctRADIUS>
{
public:
DECLARE_REGISTRY(RouterAcctRadiusConfig,
_T("RouterAcctRadiusConfig.RouterAcctRadiusConfig.1"),
_T("RouterAcctRadiusConfig.RouterAcctRadiusConfig"),
IDS_RADIUS_CONFIG_DESC,
THREADFLAGS_APARTMENT)
BEGIN_COM_MAP(RouterAcctRadiusConfig)
COM_INTERFACE_ENTRY(IAccountingProviderConfig) // Must have one static entry
END_COM_MAP()
DECLARE_NOT_AGGREGATABLE(RouterAcctRadiusConfig)
// these must be overridden to provide values to the base class
protected:
DeclareIAccountingProviderConfigMembers(IMPL);
};
/*---------------------------------------------------------------------------
Class: ServerPropAcctDialog
---------------------------------------------------------------------------*/
class ServerPropAcctDialog : public ServerPropDialog
{
// Construction
public:
ServerPropAcctDialog(BOOL fEdit, CWnd* pParent = NULL); // standard constructor
~ServerPropAcctDialog();
// Dialog Data
//{{AFX_DATA(ServerPropAcctDialog)
enum { IDD = IDD_RADIUS_ACCT_CONFIG };
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(ServerPropAcctDialog)
public:
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
// Generated message map functions
//{{AFX_MSG(ServerPropAcctDialog)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnBtnEnable();
// afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
// afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/*---------------------------------------------------------------------------
Helper functions (for RADIUS registry access)
---------------------------------------------------------------------------*/
// Do not show UI when loading the RADIUS server
#define RADIUS_FLAG_NOUI (0x00000001)
// Do not do the IP Address lookup
#define RADIUS_FLAG_NOIP (0x00000002)
HRESULT LoadRadiusServers(IN OPTIONAL LPCTSTR pszServerName,
IN HKEY hkeyMachine,
IN BOOL fAuthentication,
IN CRadiusServers * pRadiusServers,
IN DWORD dwFlags);
HRESULT SaveRadiusServers(IN OPTIONAL LPCTSTR pszServerName,
IN HKEY hkeyMachine,
IN BOOL fAuthentication,
IN RADIUSSERVER *pServerRoot);
HRESULT DeleteRadiusServers(IN OPTIONAL LPCTSTR pszServerName,
IN RADIUSSERVER *pServerRoot);