/**********************************************************************/ /** 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 { 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 { 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);