Soru Giriş Ekranı ve Windows Şifresi Doğrulaması Hakkında

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhabalar
Ekteki örnek dosyada test makrosunu çalıştırınca windows şifresini giriyrsunuz. Doğrulama yaparak işlemlere devam ediyor.

Bu kodu eklediğim Z_GirişEkranı koduna entegre edebilirmisiniz?

Normalde doğrulama şu şekilde;
EĞER domain ile kullanıcı adı tutuyor ise çalışıyordu.

Ek olarak domain, kullanıcı adı ve şifre doğrulamasını

kullanıcıadı = LoginEkrani.TextBox1.Text
sifre = LoginEkrani.TextBox2.Text

If Domain = domain1 Or Domain = domain2 Then
If kullanıcıadı = Admin1 Or kullanıcıadı = Admin2 Or kullanıcıadı = Admin3 Or kullanıcıadı = LocalUser Then
If LogonUser(Environ("Username"), vbNullString, sifre, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, 0) <> 0 Then
kontrol = True
'MsgBox "Giriş Başarılı", vbInformation + vbOKOnly, "xProgramına Hoş Geldiniz"

eklemeye çalıştım olmadı.

*************************
İSTENİLEN
Altta bulunan kodda

Domain = CreateObject("WScript.Network").Userdomain burdaki veri
Const domain1 = "XXX" 'PC Domaininiz, Const domain2 = " " 'PC Domaininiz eşit ise şifre girme ekranı açılacak, değil ise örneğin tüm exceller kapatılıp dosya silinsin.

Şifre girme ekranı açılırsa aşağıdaki şekilde giriş işlemleri devam edecek.
textbox1'e kullanıcı adı el ile yazılıyor.
textbox2'ye şifre yazılıyor. Doğru ise program açılıyor. Değil ise komple kapatılıyor.

Benim orjinal çalışmada
'If Domain = domain1 Or Domain = domain2 Then 'Domain sorgulaması
If kullanıcıadı = Admin1 Or kullanıcıadı = Admin2 Or kullanıcıadı = Admin3 Or kullanıcıadı = LocalUser Then 'Kullanıcı Adı
If LogonUser(Environ("Username"), vbNullString, sifre, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, 0) <> 0 Then 'Kullanıcı Şifre Doğrulaması
kontrol = True

Domaini sorguluyordu, kullanıcı adınıda girince doğru ise açılıyordu.
Burda sorguyu olmadığı için değiştirdim.

*************************


C++:
Public Declare PtrSafe Function LogonUser Lib "advapi32.dll" Alias "LogonUserA" _
                                  (ByVal lpszUsername As String, ByVal lpszDomain As String, _
                                   ByVal lpszPassword As String, ByVal dwLogonType As Long, _
                                   ByVal dwLogonProvider As Long, pexc As Long) As Long
Public Const LOGON32_LOGON_BATCH = 4
Public Const LOGON32_LOGON_INTERACTIVE = 2
Public Const LOGON32_LOGON_SERVICE = 5
Public Const LOGON32_LOGON_NETWORK = 3
Public Const LOGON32_PROVIDER_DEFAULT = 0
Public Const LOGON32_PROVIDER_WINNT35 = 1

Const domain1 = "XXX" 'PC Domaininiz
Const domain2 = " " 'PC Domaininiz
Const Admin1 = " " 'Admin kullanıcı adı
Const Admin2 = " " 'Admin kullanıcı adı
Const Admin3 = " " 'Admin kullanıcı adı
Public kontrol As Boolean

Sub Z_GirişEkranı()
Dim sifre As String

Domain = CreateObject("WScript.Network").Userdomain
LocalUser = CreateObject("WScript.Network").UserName
kullanıcıadı = LoginEkrani.TextBox1.Text
sifre = LoginEkrani.TextBox2.Text

'If Domain = domain1 Or Domain = domain2 Then 'Domain sorgulaması
If kullanıcıadı = Admin1 Or kullanıcıadı = Admin2 Or kullanıcıadı = Admin3 Or kullanıcıadı = LocalUser Then 'Kullanıcı Adı
    If LogonUser(Environ("Username"), vbNullString, sifre, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, 0) <> 0 Then 'Kullanıcı Şifre Doğrulaması
    kontrol = True
    'MsgBox "Giriş Başarılı", vbInformation + vbOKOnly, "xProgramına Hoş Geldiniz"
    Unload LoginEkrani
    Else
    kontrol = False 'bu satır sadece mantıksal sınama için var,başarısız giriş olursa uygulama_cikis prosedürünü çağırabilsin diye
    MsgBox "Programa erişim yetkiniz yoktur!", vbCritical + vbOKOnly, "Yetkisiz Kullanıcı"
    Unload LoginEkrani
    End If
Else
kontrol = False
MsgBox "Programa erişim yetkiniz yoktur!", vbCritical + vbOKOnly, "Yetkisiz Kullanıcı"
Unload LoginEkrani
End If
If kontrol = False Then ' burada girişin başarılı olup olmadığına bakılıyor, false ise başarısız giriş yapıldığından
'yani domain ya da kullanıcı adının yanlış olduğundan dolayı gerekli prosedür çağırılıyor
Z_GirişEkranıÇıkış
Else
'BURADA HANGİ PROSEDÜR DEVAM EDECEKSE ONU YAZIN
'ÖRNEK: call userform2 ya da call deneme vb.
End If
End Sub
Sub Z_GirişEkranıÇıkış()
'MsgBox "Program kapatıldı."
Application.Quit
End Sub
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Ekteki dosyada işlemleri yapabilirseniz sevinirim.
Açılışta otomatik açılmasını pasifize ettim. Butona tıklayınca açılan ekran açılışta geliyor.

Domain sorgusu ile loginekranı işlemi farklı basamaklara konulabilir.
Dosya açılınca önce domain sorgusu çalışıp doğru ise login ekranı açılabilir, yanlış ise dosya silinebilir.
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba excel.web ailesi Konu hakkında yardımcı olabilecek varmıdır
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Üstadım @RBozkurt Selam,
Hiç uğraşma bu bahsettiğinin oluru yok gibi bu gün bu konuyla ilgili iş zekası birimimizden bir kaç arkadaşım ile de kontrol ettik ne yaptı isek olmuyor.

Sana tavsiyem aşağıdaki linkte Sn. @Korhan Ayhan beyin bir paylaşımı var onu kendi dosyama uydurdum çokta güzel oldu tavsiye ederim;
Bu vesile ile @Korhan Ayhan beye paylaşımı için çok teşekkür ederim. Başarılı ve güzel bir çalışma olmuş..
Hayırlı akşamlar..

Giriş ekranı;
Kullanıcı adı ve şifremi girdiğimde direk ana userformum karşıma geliyor... Şifre 3 sefer yanlış girilirse dosyayı kapatıyor...

236080
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
......
....
Hiç uğraşma bu bahsettiğinin oluru yok gibi bu gün bu konuyla ilgili iş zekası birimimizden bir kaç arkadaşım ile de kontrol ettik ne yaptı isek olmuyor.
....
..

"İş Zekası Birimi"......... İlk defa duydum ama muhteşem çalışmalar yapıyorlarmış anlaşılan ... 236082

.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@Haluk Hocam Merhaba,
Bir meslek dalını ilk defa duymanız da benim tuhafıma gitti heleki böyle bir sayfada. Bu birimde çalışanlar yazılımcı, bilgisayar mühendisi vs.. Bir araştırın derim ☺ denk geldi bir danışayım dedim özel olarak sormuş değilim bir ziyaret esnasında araya kaynattım. Çok derinlemesine analiz yapamasakta uğraştık olmadı. Akabinde yukarı da paylaştığım konuya denk geldim ve uyguladım. Takip ettiğim konuyu açan sayın bozkurt tuda bilgilendirmek istedim. Hatamız varsa kusura bakmayın. Hayırlı geceler.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba
Benim en son attığımda PC'ye ait kullanıcı adı ile windows şifresi şeklinde giriş oluyor. Orda problem yok.
Tek eksik domain sorgulama işlemini de eklemek istedim. Onuda farklı bir makroya ekleyip açılışa bağlamayı düşünüyorum.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
C++:
Const domain1 = "XXX" 'Domain Adı

Private Sub Workbook_Open()

Domain = CreateObject("WScript.Network").Userdomain

If Domain = domain1 Then
    LoginEkrani.Show
Else
    kontrol = False
End If

If kontrol = False Then 
MsgBox "Programa erişim yetkiniz bulunmamaktadır!", vbInformation + vbOKOnly, "Kullanıcı Hatası"
Z_GirişEkranıÇıkış
Else
End If
End Sub
Domain sorgusunu açılışa yukarıdaki şekilde ekledim.
Domain doğrulamasını yapar ise login ekranı geliyor, yapamaz ise hata mesajı ile kapanıyor.
Problem çözüldü.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@Haluk Hocam Merhaba,
Bir meslek dalını ilk defa duymanız da benim tuhafıma gitti heleki böyle bir sayfada. Bu birimde çalışanlar yazılımcı, bilgisayar mühendisi vs.. Bir araştırın derim ☺ ........

Google'dan baktım... özetle; veri analizi, raporlama, sunum vb işleri yöneten birimmiş.

Benim tevellüt biraz eski olduğu için, bana yabancı gelen bir tanımmış...

.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
@RBozkurt Üstad zahmet olmaz ise örnek dosya ekleyebilir misin?
Teşekkürler.
 
Katılım
17 Mart 2022
Mesajlar
281
Excel Vers. ve Dili
2016/Türkçe
Altın Üyelik Bitiş Tarihi
22-03-2023
Google'dan baktım... özetle; veri analizi, raporlama, sunum vb işleri yöneten birimmiş.

Benim tevellüt biraz eski olduğu için, bana yabancı gelen bir tanımmış...

.
@Haluk Hocam,
Ne varsa sizlerde var yine :)
Varolun..
Selamlar...
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
@RBozkurt Üstad zahmet olmaz ise örnek dosya ekleyebilir misin?
Teşekkürler.
Yukarıdaki en son eklediğim dosyanın açılış koduna 8. mesajdakini ekledim.
Size nasıl bir login lazım.

Sadece kullanıcı adı ve şifre ise zaten çalışıyordu. Ben ek olarak Domain'i eklemek istemiştim..
 
Üst