Windows Vista ve sonraki sürümlerde, kullanıcı bir yönetici olsa bile LogonUser
, ayrıcalıklı olmayan bir jetonu döndürür. Böylece, bu belirteci kullanarak taklit ettiğinizde, yükseltilmezsiniz. Bir yönetici kullanıcısı için doğru bir kullanıcı adı ve şifre verildiğinde, bu yönetici için yükseltilmiş ayrıcalıklara sahip kodları nasıl çalıştırıyorsunuz?Bir kullanıcı adı ve şifre verildiğinde, bu kullanıcının kimliğini nasıl belirlersiniz?
6
A
cevap
0
Bir sonuçlanacaktır yerine LOGON32_LOGON_INTERACTIVE
ait LOGON32_LOGON_SERVICE
veya LOGON32_LOGON_NEW_CREDENTIALS
kullanarak, Windows hizmetini yazıyorsanız Ayrıcalıklı belirteç, kimliğe bürünmek istediğiniz kullanıcının 'hizmet olarak oturum açma' izinlerine sahip olduğu sürece.
Bu, genel bir çözüm sağlamaz (kullanıcılara yönelik bir uygulama yazıyorsanız işe yaramaz), ancak sahip olduğum özel sorunu çözmek için yeterlidir.
1
this example ile çalıştım, aslında iyi çalışıyor. Sana bu bağlamda kod çalıştırmasına istiyorsanız geçerli iş parçacığı ilkesini ayarlamak gerekecek sanırım:
Thread.CurrentPrincipal = new System.Security.Principal.WindowsPrincipal(WindowsIdentity.GetCurrent());
Bir AD hesabını veya yerel bir hesabı taklit etmek mi istiyorsunuz? – Botonomous
Active Directory, öncelikle - yerel için de çalışıyor olsa da bu harika olurdu! –