added LSL2 stored procedures
This commit is contained in:
73
LSL2/STPROC/AUTHENTICATE_LDAP.txt
Normal file
73
LSL2/STPROC/AUTHENTICATE_LDAP.txt
Normal file
@ -0,0 +1,73 @@
|
||||
function Authenticate_LDAP(void)
|
||||
|
||||
$Insert LOGICAL
|
||||
|
||||
/* equates for the base registry keys */
|
||||
equ HKEY_CLASSES_ROOT$ to 0x80000000
|
||||
equ HKEY_CURRENT_USER$ to 0x80000001
|
||||
equ HKEY_LOCAL_MACHINE$ to 0x80000002
|
||||
equ HKEY_USERS$ to 0x80000003
|
||||
equ HKEY_PERFORMANCE_DATA$ to 0x80000004
|
||||
equ HKEY_CURRENT_CONFIG$ to 0x80000005
|
||||
equ HKEY_DYN_DATA$ to 0x80000006
|
||||
equ KEY_QUERY_VALUE$ to 0x0001
|
||||
equ ERROR_SUCCESS to 0x0000
|
||||
|
||||
Declare subroutine Set_Property.Net, Utility, RegQueryValueEx, Msg, Create_User, RTI_Create_User_Details
|
||||
Declare Subroutine Set_Property
|
||||
Declare function Active_Directory_Services, RegOpenKeyEx, RTI_GetNetworkUserName, RegCloseKey
|
||||
Declare Function Database_Services
|
||||
|
||||
Log = @AppId<1>
|
||||
Oswrite Log to 'D:\Temp\auth.txt'
|
||||
|
||||
Authenticated = False$
|
||||
Options = 0
|
||||
SamDesired = KEY_QUERY_VALUE$
|
||||
KeyHandle = 0
|
||||
Hkey = HKEY_LOCAL_MACHINE$
|
||||
SubKey = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters":\00\
|
||||
Stat = 0
|
||||
Null = ''
|
||||
LockVariable KeyHandle as Long
|
||||
Stat = RegOpenKeyEx(Hkey, SubKey, Options, SamDesired, KeyHandle)
|
||||
If Stat = ERROR_SUCCESS Then
|
||||
Domain = str(\00\, 512)
|
||||
Reg_SZ = 1
|
||||
CbBuf = 512
|
||||
Key = "Domain":\00\
|
||||
RegQueryValueEx(KeyHandle, Key, 0, Reg_SZ, Domain, CbBuf)
|
||||
Domain = Domain[1, CbBuf - 1]
|
||||
end
|
||||
rv = RegCloseKey(KeyHandle)
|
||||
|
||||
UserADName = RTI_GetNetworkUserName()
|
||||
UserADGroups = Active_Directory_Services('GetADGroups', UserADName, Domain)
|
||||
**SSOInfo = Database_Services('ReadDataRow', 'SYSENV', 'CFG_LOGIN*':@AppId<1>)
|
||||
*SSOErrorMsg = SSOInfo<9>
|
||||
*SSOADGroups = Field(SSOInfo, @FM, 2, 3)
|
||||
SSOADGroups = Database_Services('ReadDataRow', 'SYSENV', 'SSO*LSL2')
|
||||
|
||||
For GroupIndex = 3 to 1 Step -1
|
||||
SSOADGroup = SSOADGroups<GroupIndex>
|
||||
If InList(UserADGroups, SSOADGroup, @FM) then
|
||||
@UserName = UserADName
|
||||
SecurityLevel = GroupIndex - 1
|
||||
@Admin = SecurityLevel
|
||||
Authenticated = True$
|
||||
Set_Property( "SYSTEM", "LOGININFO" , 'LSL2':@FM:UserADName:@FM:'')
|
||||
end
|
||||
Until Authenticated
|
||||
Next GroupIndex
|
||||
|
||||
Swap 1 With 'True' In Authenticated
|
||||
Swap 0 With 'False' In Authenticated
|
||||
Log := ', Authenticated ':Authenticated
|
||||
Oswrite Log to 'D:\Temp\auth.txt'
|
||||
|
||||
If Not(Authenticated) then
|
||||
Msg(@Window, 'SSO Error')
|
||||
Utility('DESTROY', 'SYSTEM')
|
||||
End
|
||||
|
||||
Return
|
Reference in New Issue
Block a user