MapInfo yazılımı içerisinde kullanılmak üzere Mapbasic ile geliştirilen yazılımların belirli kullanıcılar tarafından kullanılması gerekebilmektedir. Bu çoğunlukla veritabanında kayıtlı tutulan kullanıcı kayıtları ile gerçekleştirilmektedir. Ancak Microsoft Active Directory servisinin kullanıldığı kurumsal bilişim altyapıları üzerinde kullanılacak MapInfo+Mapbasic temelli uygulamaların kullanıcı denetimlerinin sadece veritabanı üzerinden yapılması çok da efektif olmamaktadır. Kullanıcılar haklı olarak bilgisayarlarını açarken domaine dahil olmalarını sağlayan kullanıcı adları ve şifreleri tüm kurumsal uygulamalarda kullanmak istiyorlar. Biz de bunun için halen geliştirmekte olduğumuz tüm MapInfo+Mapbasic temelli uygulamalarımızın kurumumuzdaki Active Directory servisinden kullanıcı denetimi gerçekleştiren küçük bir DLL dosyasını C# ile oluşturduk. Bu DLL dosyasını siz de Mapbasic kodlarınız içerisinde aşağıdaki gibi kullanabilirsiniz. DLL dosyasını buradan indirebilirsiniz.
include "mapbasic.def"
declare sub main
declare method UserAuthenticateS
class "GsxAuthentication4Apps.GsxAuthentication"
Lib "GsxAuthentication4Apps.dll"(Byval username as string,Byval password as string,Byval pldapadress as string) as string 'DLL dosyamızın içerisindeki methodu declare ediyoruz.
sub main
dim username,password as string
dialog title "Kullanıcı Girişi"
control statictext title "Kullanıcı Adı" position 10,10
control edittext value "" position 75,5 into username
control statictext title "Şifre" position 10,30
control edittext value "" password position 75,25 into password
control okbutton title "Tamam"
control cancelbutton title "İptal"
if commandinfo(CMD_INFO_DLG_OK) then
dim sncx as string
sncx=UserAuthenticateS(username,password,Active Directory Servisinin Adresi)
if len(sncx)>0 and sncx="Doğru" then 'DLL dosyasındaki Method Geriye "Doğru" veya "Yanlış" string değeri döndürüyor.
'Kullanıcının Veritabanında Yetkili Kullanıcı Olarak Kayıtlı Olup Olmadığı Kontrol Edilmelidir.
end if
end if
end sub
declare sub main
declare method UserAuthenticateS
class "GsxAuthentication4Apps.GsxAuthentication"
Lib "GsxAuthentication4Apps.dll"(Byval username as string,Byval password as string,Byval pldapadress as string) as string 'DLL dosyamızın içerisindeki methodu declare ediyoruz.
sub main
dim username,password as string
dialog title "Kullanıcı Girişi"
control statictext title "Kullanıcı Adı" position 10,10
control edittext value "" position 75,5 into username
control statictext title "Şifre" position 10,30
control edittext value "" password position 75,25 into password
control okbutton title "Tamam"
control cancelbutton title "İptal"
if commandinfo(CMD_INFO_DLG_OK) then
dim sncx as string
sncx=UserAuthenticateS(username,password,Active Directory Servisinin Adresi)
if len(sncx)>0 and sncx="Doğru" then 'DLL dosyasındaki Method Geriye "Doğru" veya "Yanlış" string değeri döndürüyor.
'Kullanıcının Veritabanında Yetkili Kullanıcı Olarak Kayıtlı Olup Olmadığı Kontrol Edilmelidir.
end if
end if
end sub
Hiç yorum yok:
Yorum Gönder