386 lines
14 KiB
C
386 lines
14 KiB
C
|
/**********************************************************************/
|
||
|
/** Microsoft Windows/NT **/
|
||
|
/** Copyright(c) Microsoft Corp., **/
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/*
|
||
|
dialinusr.h
|
||
|
Definition of names, values, default values, containers information
|
||
|
related to msRASUser, msRASProfile in DS
|
||
|
|
||
|
Author:
|
||
|
Wei Jiang (weijiang) 13-Oct-97
|
||
|
|
||
|
Revision History:
|
||
|
Wei Jiang (weijiang) 20-Oct-97 -- define more bits for msRASAllowDialin Attribute
|
||
|
-- static IP address
|
||
|
-- callback number
|
||
|
-- caller id
|
||
|
-- default profile name --> "DefaultRASProfile"
|
||
|
|
||
|
Wei Jiang (weijiang) 13-Nov-97 -- move definition of timeOfDay into this header
|
||
|
|
||
|
Wei Jiang (weijiang) 29-APR-98 -- SDO Wrapper APIs
|
||
|
|
||
|
Wei Jiang (weijiang) 29-APR-98 -- move profile UI APIs into this folder
|
||
|
*/
|
||
|
// dsrasuse.h : header file for RAS User and Profile definition
|
||
|
//
|
||
|
|
||
|
#ifndef _RAS_USER_PROFILE_
|
||
|
#define _RAS_USER_PROFILE_
|
||
|
|
||
|
// Attribute DN
|
||
|
#define RAS_DSAN_DN L"distinguishedName"
|
||
|
|
||
|
// Callback number length
|
||
|
#define RAS_CALLBACK_NUMBER_LEN MAX_PHONE_NUMBER_LEN
|
||
|
#define RAS_CALLBACK_NUMBER_LEN_NT4 48
|
||
|
|
||
|
// IP Address Policy, used in profile msRASIPAddressPolicy
|
||
|
#define RAS_IP_USERSELECT 0xffffffff
|
||
|
#define RAS_IP_SERVERASSIGN 0xfffffffe
|
||
|
#define RAS_IP_STATIC 0xfffffffd
|
||
|
#define RAS_IP_NONE 0x0
|
||
|
|
||
|
// Radius Service type
|
||
|
#define RAS_RST_FRAMED 0x2
|
||
|
#define RAS_RST_FRAMEDCALLBACK 0x4
|
||
|
|
||
|
// Authentication Type, used in profile, for msRASAuthenticationType
|
||
|
|
||
|
/*
|
||
|
1 PAP/SPAP
|
||
|
2 CHAP
|
||
|
3 MS-CHAP-1
|
||
|
4 MS-CHAP-2
|
||
|
5 EAP
|
||
|
6 ARAP
|
||
|
7 None >> Can we rename it to:- Unauthenticated Access.
|
||
|
8 Custom Authentication Module
|
||
|
9 MS-CHAP-1 with password change
|
||
|
10 MS-CHAP-2 with Password change
|
||
|
|
||
|
// replace old value == (EAP=1, CHAP=2, MS-CHAP=3, PAP=4, SPAP=5)
|
||
|
*/
|
||
|
|
||
|
#define RAS_AT_PAP_SPAP 1
|
||
|
#define RAS_AT_MD5CHAP 2
|
||
|
#define RAS_AT_MSCHAP 3
|
||
|
#define RAS_AT_MSCHAP2 4
|
||
|
#define RAS_AT_EAP 5
|
||
|
|
||
|
#if 0
|
||
|
#define RAS_AT_ARAP 6
|
||
|
#endif
|
||
|
|
||
|
#define RAS_AT_UNAUTHEN 7
|
||
|
#define RAS_AT_EXTENSION_DLL 8
|
||
|
#define RAS_AT_MSCHAPPASS 9
|
||
|
#define RAS_AT_MSCHAP2PASS 10
|
||
|
|
||
|
// Authentication Type Names
|
||
|
#define RAS_ATN_MSCHAP _T("MSCHAP")
|
||
|
#define RAS_ATN_MD5CHAP _T("MD5CHAP")
|
||
|
#define RAS_ATN_CHAP _T("CHAP")
|
||
|
#define RAS_ATN_EAP _T("EAP")
|
||
|
#define RAS_ATN_PAP _T("PAP")
|
||
|
|
||
|
// Encryption Policy, used in profile for msRASAllowEncryption
|
||
|
#define RAS_EP_DISALLOW 1 // the type should set to ET_NONE
|
||
|
#define RAS_EP_ALLOW 1
|
||
|
#define RAS_EP_REQUIRE 2
|
||
|
|
||
|
// Encrpytiopn Type
|
||
|
#define RAS_ET_BASIC 0x00000002
|
||
|
#define RAS_ET_STRONGEST 0x00000004
|
||
|
#define RAS_ET_STRONG 0x00000008
|
||
|
#define RAS_ET_AUTO (RAS_ET_BASIC | RAS_ET_STRONG | RAS_ET_STRONGEST)
|
||
|
|
||
|
#if 0 // old values
|
||
|
// Encryption Types, profile, for msRASEncryptionType
|
||
|
#define RAS_ET_NONE 0x0
|
||
|
#define RAS_ET_IPSEC 0x00000001
|
||
|
#define RAS_ET_40 0x00000002
|
||
|
#define RAS_ET_128 0x00000004
|
||
|
#define RAS_ET_56 0x00000008
|
||
|
|
||
|
// change it back after beta3
|
||
|
#define RAS_ET_DES_40 0x00000010
|
||
|
// #define RAS_ET_DES_40 RAS_ET_IPSEC
|
||
|
#define RAS_ET_DES_56 0x00000020
|
||
|
#define RAS_ET_3DES 0x00000040
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// Framed Routing
|
||
|
#define RAS_FR_FALSE 0x0 // or absent
|
||
|
#define RAS_FR_TRUE 0x1
|
||
|
|
||
|
// BAP Policy -- profile, for msRASBAPRequired
|
||
|
#define RAS_BAP_ALLOW 1
|
||
|
#define RAS_BAP_REQUIRE 2
|
||
|
|
||
|
// Port Types -- profile, for msRASAllowPortType
|
||
|
#define RAS_PT_ISDN 0x00000001
|
||
|
#define RAS_PT_MODEM 0x00000002
|
||
|
#define RAS_PT_VPN 0x00000004
|
||
|
#define RAS_PT_OTHERS 0xFFFFFFF8
|
||
|
#define RAS_PT_ALL 0xffffffff
|
||
|
|
||
|
#ifdef _TUNNEL
|
||
|
|
||
|
//Tunnel Types
|
||
|
#define RAS_TT_PPTP 1
|
||
|
#define RAS_TT_L2F 2
|
||
|
#define RAS_TT_L2TP 3
|
||
|
#define RAS_TT_ATMP 4
|
||
|
#define RAS_TT_VTP 5
|
||
|
#define RAS_TT_AH 6
|
||
|
#define RAS_TT_IP_IP 7
|
||
|
#define RAS_TT_MIN_IP_IP 8
|
||
|
#define RAS_TT_ESP 9
|
||
|
#define RAS_TT_GRE 10
|
||
|
#define RAS_TT_DVS 11
|
||
|
|
||
|
//Tunnel Type Names
|
||
|
#define RAS_TTN_PPTP _T("PPTP") // Point-to-Point Tunneling Protocol (PPTP)
|
||
|
#define RAS_TTN_L2F _T("L2F") // Layer Two Forwarding
|
||
|
#define RAS_TTN_L2TP _T("L2TP") // Layer Two Tunneling Protocol
|
||
|
#define RAS_TTN_ATMP _T("ATMP") // Ascend Tunnel Management Protocol
|
||
|
#define RAS_TTN_VTP _T("VTP") // Virtual Tunneling Protocol
|
||
|
#define RAS_TTN_AH _T("AH") // IP Authentication Header in the Tunnel-mode
|
||
|
#define RAS_TTN_IP_IP _T("IP-IP") // IP-in-IP Encapsulation
|
||
|
#define RAS_TTN_MIN_IP_IP _T("MIN-IP-IP") // Minimal IP-in-IP Encapsulation
|
||
|
#define RAS_TTN_ESP _T("ESP") // IP Encapsulation Security Payload in the Tunnel-mode
|
||
|
#define RAS_TTN_GRE _T("GRE") // Generic Route Encapsulation
|
||
|
#define RAS_TTN_DVS _T("DVS") // Bay Dial Virtual Services
|
||
|
|
||
|
// Tunnel Medium Types
|
||
|
#define RAS_TMT_IP 1
|
||
|
#define RAS_TMT_X25 2
|
||
|
#define RAS_TMT_ATM 3
|
||
|
#define RAS_TMT_FRAMEDELAY 4
|
||
|
|
||
|
// Tunnel Medium Type Names
|
||
|
#define RAS_TMTN_IP _T("IP")
|
||
|
#define RAS_TMTN_X25 _T("X.25")
|
||
|
#define RAS_TMTN_ATM _T("ATM")
|
||
|
#define RAS_TMTN_FRAMEDELAY _T("Frame Relay")
|
||
|
|
||
|
#endif // _TUNNEL
|
||
|
|
||
|
//=========================================================
|
||
|
// for msRASAllowDialin attribute of RAS User object
|
||
|
// dialin policy, RASUser, msRASAllowDialin
|
||
|
/*
|
||
|
#define RASPRIV_NoCallback 0x01
|
||
|
#define RASPRIV_AdminSetCallback 0x02
|
||
|
#define RASPRIV_CallerSetCallback 0x04
|
||
|
#define RASPRIV_DialinPrivilege 0x08
|
||
|
*/
|
||
|
#define RAS_DIALIN_MASK RASPRIV_DialinPrivilege
|
||
|
#define RAS_DIALIN_ALLOW RASPRIV_DialinPrivilege
|
||
|
#define RAS_DIALIN_DISALLOW 0
|
||
|
|
||
|
// callback policy, RASUser, msRASAllowDialin
|
||
|
#define RAS_CALLBACK_MASK 0x00000007
|
||
|
#define RAS_CALLBACK_NOCALLBACK RASPRIV_NoCallback
|
||
|
#define RAS_CALLBACK_CALLERSET RASPRIV_CallerSetCallback
|
||
|
#define RAS_CALLBACK_SECURE RASPRIV_AdminSetCallback
|
||
|
#define RAS_USE_CALLBACK RASPRIV_AdminSetCallback
|
||
|
|
||
|
#define RADUIS_SERVICETYPE_CALLBACK_FRAME RAS_RST_FRAMEDCALLBACK
|
||
|
|
||
|
// caller id -- uses the caller id attribute, RASUser, msRASAllowDialin
|
||
|
#define RAS_USE_CALLERID 0x00000010
|
||
|
|
||
|
// static IP address -- uses the framed Ip address attribute, RASUser, msRASAllowDialin
|
||
|
#define RAS_USE_STATICIP 0x00000020
|
||
|
|
||
|
// static routes -- uses the framed routes attribute, RASUser, msRASAllowDialin
|
||
|
#define RAS_USE_STATICROUTES 0x00000040
|
||
|
|
||
|
//==========================================================
|
||
|
// msRASTimeOfDay
|
||
|
//
|
||
|
// msRASTimeOfDay is multi-valued string attribute of ras profile
|
||
|
// when it's absent, no restriction
|
||
|
// sample values: 0 10:00-15:00 18:00-20:00 --> meaning allow dailin Monday, 10:00 to 15:00, 18:00 to 20:00 GMT
|
||
|
|
||
|
// day of week definition
|
||
|
// changed to start 0 from SUNDAY rather that MON, and SAT to 6, BUG -- 171343
|
||
|
#define RAS_DOW_SUN _T("0")
|
||
|
#define RAS_DOW_MON _T("1")
|
||
|
#define RAS_DOW_TUE _T("2")
|
||
|
#define RAS_DOW_WED _T("3")
|
||
|
#define RAS_DOW_THU _T("4")
|
||
|
#define RAS_DOW_FRI _T("5")
|
||
|
#define RAS_DOW_SAT _T("6")
|
||
|
|
||
|
//==========================================================
|
||
|
// the default
|
||
|
// ras user object
|
||
|
#define RAS_DEF_ALLOWDIALIN RAS_DIALIN_DISALLOW
|
||
|
#define RAS_DEF_CALLBACKPOLICY RAS_CALLBACK_NOCALLBACK
|
||
|
#define RAS_DEF_IPADDRESSPOLICY RAS_IP_NONE
|
||
|
#define RAS_DEF_FRAMEDROUTE // not route
|
||
|
#define RAS_DEF_PROFILE L"DefaultRASProfile"
|
||
|
#define RAS_DEF_PROFILE_T _T("DefaultRASProfile")
|
||
|
// ras profile object
|
||
|
// constraints
|
||
|
#define RAS_DEF_SESSIONSALLOWED 0
|
||
|
#define RAS_DEF_IDLETIMEOUT 0
|
||
|
#define RAS_DEF_SESSIONTIMEOUT 0
|
||
|
#define RAS_DEF_TIMEOUTDAY // no restriction
|
||
|
#define RAS_DEF_CALLEDSTATIONID // no checking
|
||
|
#define RAS_DEF_ALLOWEDPORTTYPE RAS_PT_ALL
|
||
|
// networking
|
||
|
#ifdef _RIP
|
||
|
#define RAS_DEF_FRAMEDROUTING RAS_FR_FALSE
|
||
|
#endif
|
||
|
#ifdef _FILTER
|
||
|
#define RAS_DEF_FILTERID // no filter
|
||
|
#endif
|
||
|
#define RAS_DEF_FRAMEDIPADDRESS RAS_IP_NONE
|
||
|
// multilink
|
||
|
#define RAS_DEF_PORTLIMIT 1
|
||
|
#define RAS_DEF_BAPLINEDNLIMIT 50 // percentage
|
||
|
#define RAS_DEF_BAPLINEDNTIME 120 // second
|
||
|
#define RAS_DEF_BAPREQUIRED 0
|
||
|
// Authentication
|
||
|
#define RAS_DEF_AUTHENTICATIONTYPE RAS_AT_MSCHAP
|
||
|
#define RAS_DEF_EAPTYPE 0
|
||
|
// encryption
|
||
|
#define RAS_DEF_ENCRYPTIONPOLICY RAS_EP_ALLOW
|
||
|
#define RAS_DEF_ENCRYPTIONTYPE RAS_ET_AUTO
|
||
|
// tunneling -- default to no tunneling
|
||
|
#define RAS_DEF_TUNNELTYPE 0
|
||
|
#define RAS_DEF_TUNNELMEDIUMTYPE 0
|
||
|
#define RAS_DEF_TUNNELSERVERENDPOINT _T("")
|
||
|
#define RAS_DEF_TUNNELPRIVATEGROUPID _T("")
|
||
|
|
||
|
// the relative path from the DS (DSP-DS PATH)
|
||
|
#define RAS_DSP_HEADER L"LDAP://" // DS provider header
|
||
|
#define RAS_DSP_ROOTDSE L"LDAP://RootDSE" // DS Root
|
||
|
#define RAS_DSP_HEADER_T _T("LDAP://")
|
||
|
#define RAS_DSP_GLUE L","
|
||
|
#define RAS_DSP_GLUE_T _T(",") // glue to put path together
|
||
|
|
||
|
#define RAS_DSA_CONFIGCONTEXT L"configurationNamingContext"
|
||
|
|
||
|
// DS user userparameters attribute name
|
||
|
#define DSUSER_USERPARAMETERS L"userParameters"
|
||
|
|
||
|
// the name of the radius user object within the DS user object container
|
||
|
#define RAS_OBJN_USER L"rasDialin"
|
||
|
|
||
|
// the relative path (RPATH - Relative Path to DC)
|
||
|
#define RAS_RPATH_USERCONTAINER L"CN=Users"
|
||
|
#define RAS_RPATH_USERCONTAINER_T _T("CN=Users")
|
||
|
#define RAS_RPATH_PROFILECONTAINERINCONFIG L"CN=Profiles,CN=RAS,CN=Services,"
|
||
|
#define RAS_RPATH_PROFILECONTAINERINONFIG_T _T("CN=Profiles,CN=RAS,CN=Services,")
|
||
|
#define RAS_RPATH_EAPDICTIONARYINCONFIG L"CN=EapDictionary,CN=RAS,CN=Services,"
|
||
|
#define RAS_RPATH_EAPDICTIONARYINCONFIG_T _T("CN=EapDictionary,CN=RAS,CN=Services,")
|
||
|
|
||
|
// Radius Class name definitions -- in UniCode ??
|
||
|
#define RAS_CLSN_USER L"msRASUserClass"
|
||
|
#define RAS_CLSN_PROFILE L"msRASProfileClass"
|
||
|
#define RAS_CLSN_EAPDICTIONARY L"msRASEapDictionaryClass"
|
||
|
|
||
|
// RAS Eap Dictionary Attribute Name
|
||
|
#define RAS_EAN_EAPDICTIONARYENTRY L"msRASEapDictionaryEntry"
|
||
|
// in format "Description name : typeid"
|
||
|
|
||
|
// Radius User Attributes Names -- in Unicode
|
||
|
#define RAS_UAN_ALLOWDIALIN L"msRASAllowDialin"
|
||
|
#define RAS_UAN_FRAMEDIPADDRESS L"msRASFramedIPAddress"
|
||
|
#define RAS_UAN_CALLBACKNUMBER L"msRASCallbackNumber"
|
||
|
#define RAS_UAN_FRAMEDROUTE L"msRASFramedRoute"
|
||
|
#define RAS_UAN_CALLINGSTATIONID L"msRASCallingStationId"
|
||
|
|
||
|
#define RAS_UAN_RADIUSPROFILE L"msRASProfilePointer"
|
||
|
|
||
|
// Radius Profile Attributes Names -- in Unicode
|
||
|
#define RAS_PAN_FRAMEDIPADDRESS L"msRASIPAddressPolicy"
|
||
|
#ifdef _RIP
|
||
|
#define RAS_PAN_FORWARDROUTING L"msRASFramedRouting"
|
||
|
#endif
|
||
|
#ifdef _FILTER
|
||
|
#define RAS_PAN_FILTERID L"msRASFilterId"
|
||
|
#endif
|
||
|
#define RAS_PAN_SESSIONTIMEOUT L"msRASSessionTimeout"
|
||
|
#define RAS_PAN_IDLETIMEOUT L"msRASIdleTimeout"
|
||
|
|
||
|
#define RAS_PAN_CALLEDSTATIONID L"msRASCalledStationId"
|
||
|
#define RAS_PAN_PORTLIMIT L"msRASPortLimit"
|
||
|
#define RAS_PAN_ALLOWEDPORTTYPE L"msRASAllowedPortType"
|
||
|
#define RAS_PAN_BAPLINEDNLIMIT L"msRASBapLineDnLimit"
|
||
|
#define RAS_PAN_BAPLINEDNTIME L"msRASBapLineDnTime"
|
||
|
|
||
|
#define RAS_PAN_BAPREQUIRED L"msRASBapRequired"
|
||
|
#define RAS_PAN_CACHETIMEOUT L"msRASCacheTimeout"
|
||
|
#define RAS_PAN_EAPTYPE L"msRASEapType"
|
||
|
#define RAS_PAN_SESSIONSALLOWED L"msRASSessionsAllowed"
|
||
|
#define RAS_PAN_TIMEOFDAY L"msRASTimeOfDay"
|
||
|
|
||
|
#define RAS_PAN_AUTHENTICATIONTYPE L"msRASAuthenticationType"
|
||
|
#define RAS_PAN_ENCRYPTIONPOLICY L"msRASAllowEncryption"
|
||
|
#define RAS_PAN_ENCRYPTIONTYPE L"msRASEncryptionType"
|
||
|
|
||
|
#ifdef _TUNNEL
|
||
|
#define RAS_PAN_TUNNELTYPE L"msRASTunnelType"
|
||
|
#define RAS_PAN_TUNNELMEDIUMTYPE L"msRASTunnelMediumType"
|
||
|
#define RAS_PAN_TUNNELSERVERENDPOINT L"msRASTunnelServerEndpoint"
|
||
|
#define RAS_PAN_TUNNELPRIVATEGROUPID L"msRASTunnelPrivateGroupId"
|
||
|
#endif //_TUNNEL
|
||
|
|
||
|
|
||
|
//===============================================================
|
||
|
// for local case, neet to set footprint after saving data
|
||
|
#define REGKEY_REMOTEACCESS_PARAMS L"SYSTEM\\CurrentControlSet\\Services\\RemoteAccess\\Parameters"
|
||
|
#define REGVAL_NAME_USERSCONFIGUREDWITHMMC L"UsersConfiguredWithMMC"
|
||
|
#define REGVAL_VAL_USERSCONFIGUREDWITHMMC 1
|
||
|
|
||
|
//=====================================================================
|
||
|
// For machine with NO DS, ras profiles are stored in registry,
|
||
|
// Registry key definitions
|
||
|
|
||
|
// Root of RAS
|
||
|
#define RAS_REG_ROOT HKEY_LOCAL_MACHINE
|
||
|
#define RAS_REG_RAS L"SOFTWARE\\Microsoft\\Ras"
|
||
|
#define RAS_REG_RAS_T _T("SOFTWARE\\Microsoft\\Ras")
|
||
|
|
||
|
#define RAS_REG_PROFILES L"Profiles"
|
||
|
#define RAS_REG_PROFILES_T _T("Profiles")
|
||
|
|
||
|
#define RAS_REG_DEFAULT_PROFILE L"SOFTWARE\\Microsoft\\Ras\\Profiles\\DefaultRASProfile"
|
||
|
#define RAS_REG_DEFAULT_PROFILE_T _T("SOFTWARE\\Microsoft\\Ras\\Profiles\\DefaultRASProfile")
|
||
|
|
||
|
|
||
|
//=================================================
|
||
|
// APIs
|
||
|
#define DllImport __declspec( dllimport )
|
||
|
#define DllExport __declspec( dllexport )
|
||
|
|
||
|
#ifndef __NOT_INCLUDE_OpenRAS_IASProfileDlg__
|
||
|
|
||
|
// =======================================================
|
||
|
// APIs to start profile UI
|
||
|
#define RAS_IAS_PROFILEDLG_SHOW_RASTABS 0x00000001
|
||
|
#define RAS_IAS_PROFILEDLG_SHOW_IASTABS 0x00000002
|
||
|
#define RAS_IAS_PROFILEDLG_SHOW_WIN2K 0x00000004
|
||
|
|
||
|
DllExport HRESULT OpenRAS_IASProfileDlg(
|
||
|
LPCWSTR pMachineName, // the machine name where the snapin is focused
|
||
|
ISdo* pProfile, // profile SDO pointer
|
||
|
ISdoDictionaryOld* pDictionary, // dictionary SDO pointer
|
||
|
BOOL bReadOnly, // if the dlg is for readonly
|
||
|
DWORD dwTabFlags, // what to show
|
||
|
void *pvData // additional data
|
||
|
);
|
||
|
|
||
|
#endif // __NOT_INCLUDE_OpenRAS_IASProfileDlg__
|
||
|
|
||
|
#endif // _RAS_USER_PROFILE
|