So sánh Passwords nhập với Passwords của đăng nhập Windows

Liên hệ QC

Bảy Dzõ

Ngu Excel nhất GPE
Tham gia
18/11/09
Bài viết
565
Được thích
1,361
Nghề nghiệp
Just for daily's rice
Mình có đoạn Code như sau:

Mã:
Sub Admin()
Dim user As Variant
Dim sh As Worksheet
Dim match As Variant

user = GetName("windows")
 
match = Application.match(user, ThisWorkbook.Sheets("Admin").Range("C:C"), 0)
If Not IsError(match) Then
    ThisWorkbook.Unprotect Password:="admin"
    
    If Worksheets("StaffListing").Visible = True Then
        
        Worksheets("StaffListing").Visible = False
        Worksheets("NameList").Visible = False
        Worksheets("Admin").Visible = False
        Worksheets("TMRatings").Protect Password:="admin"
        ActiveWindow.DisplayWorkbookTabs = False
        MsgBox "ACCESS GRANTED : SECRET PASSAGE LOCKED.", vbInformation + vbOKOnly
        ThisWorkbook.Protect Password:="admin"
            
    ElseIf Worksheets("StaffListing").Visible = False Then
        Worksheets("StaffListing").Visible = True
        Worksheets("NameList").Visible = True
        Worksheets("Admin").Visible = True
        Worksheets("TMRatings").Unprotect Password:="admin"
        ActiveWindow.DisplayWorkbookTabs = True
        If Worksheets("TMRatings").AutoFilterMode = True Then Worksheets("TMRatings").AutoFilterMode = False
        MsgBox "ACCESS GRANTED : SECRET PASSAGE UNLOCKED.", vbInformation + vbOKOnly
    End If
        
Else:
    MsgBox "ACCESS DENIED : Sad to say, You Are Not The Chosen One.", vbExclamation + vbOKOnly
    End If
End Sub

Theo như mình biết là việc lấy username của Windows là việc khả thi như trên. Nay mình muốn tạo một userform để người dùng nhập passwords vào nhưng với điều kiện là phải trùng với Passwords của đăng nhập Windows. Cho mình hỏi vấn đề này có khả thi?

Sẵn tiện mình đang học viết code cho nên các anh/chị có thể góp ý cho mình đoạn code trên sao cho gọn hơn được ko vì mình có cảm giác nó sao sao và hơi rườm rà. Cảm ơn.
 
Nếu nhiều WB hơn nữa thì dùng vòng lặp, còn như code trên thì OK rồi, chỉ có 3 WB là giống tính chất, còn lại là khác nên không cần gọn hơn nữa đâu.

Còn vấn đề lấy mật mã của Window e rằng rất khó, chắc hacker mới lấy được! hihihi
 
Theo như mình biết là việc lấy username của Windows là việc khả thi như trên. Nay mình muốn tạo một userform để người dùng nhập passwords vào nhưng với điều kiện là phải trùng với Passwords của đăng nhập Windows. Cho mình hỏi vấn đề này có khả thi?

Vậy mấu chốt vấn đề là phải lấy cho được password logon Windows (mới có cái mà so sánh)
Thế thì e rằng không được ---> Liên quan đến bảo mất, Windows sẽ không cung cấp cho ta công cụ để làm việc này đâu
(xưa giờ hể quên password thì dùng soft để clear luôn chứ tôi chưa nghe nói đến vụ đọc password à nha)
 
Vậy mấu chốt vấn đề là phải lấy cho được password logon Windows (mới có cái mà so sánh)
Thế thì e rằng không được ---> Liên quan đến bảo mất, Windows sẽ không cung cấp cho ta công cụ để làm việc này đâu
(xưa giờ hể quên password thì dùng soft để clear luôn chứ tôi chưa nghe nói đến vụ đọc password à nha)

Thầy thông cảm, ngu hay hỏi bậy lắm hihihi. Em suy nghĩ đơn giản nhưng thực tế thì khó (em hiểu). Em cứ giả sử như thế này: Nếu mình nhập pass vào userform và nếu có code lệnh so sánh xem nó trùng với pass của windows thì cho chạy tiếp. Vì mình ko xuất pass nhập của Windows ra nên em cứ nghĩ là có thể vì em biết chính sách bảo mật của Windows cũng thuộc hàng khủng. Em xin lỗi vì câu hỏi ngu ặc ặc...

Nếu nhiều WB hơn nữa thì dùng vòng lặp, còn như code trên thì OK rồi,

Vòng lặp hả anh, hix hix chắc đợi thêm một ít nữa đễ em vô núi chuyên tâm tu luyện vậy... Em viết được như vậy cũng vã mồ hôi và vui lắm vì thật sự em ngu VBA hehehe
 
Mấy thầy sẽ hỏi nguyên nhân tại sao phải làm vậy và có nhất thiết phải làm vậy hay không? Lý do là em muốn tạo chế độ bảo mật hai lớp. Một là vừa dùng username của windows và lớp thứ hai là mật khẩu. Cho dù người khác biết mật khẩu thì cũng ko thể thêm dữ liệu vào được vì windows' username của họ ko nằm trong file nên ko được chấp nhận.

Ngược lại, nếu người đang sử dụng (có khả năng nhập dữ liệu) bỏ ra ngoài đi hút thuốc giống thầy Tuấn đi (hehe) có ai đó nhào vô máy đó muốn nhập thì cũng phải biết mật khẩu.

Vì hiện tại mỗi nhân viên bên em có đến 4 mật khẩu khác nhau của 4 chương trình riêng biệt. Cho nên em muốn dùng code để tự động so sánh mật khẩu vì người dùng ko thể cung cấp cho mình Windows' log on pass được.

Em có tham khảo ý kiến của bác Ị Tè Manager bên em, bác ấy cá với bác ấy một chầu nhậu đi rồi bác ấy sẽ làm cho coi... Mà chầu nhậu thuộc loại ko rẻ hahaha nên lên đây cầu cứu cao thủ.....
 
Web KT
Back
Top Bottom