C#

2010-10-07 8 views
5

ile giriş yaptıktan sonra yerel kullanıcıyı değiştirmek için güç kullanıyorum. ASP.NET'te bir istemci uygulaması için sunucuda yerel kullanıcılara karşı Windows kimlik doğrulaması yapılan sunucu makinesinde oturum açan bir web uygulaması işlevi yapıyorum. Yazmakta olduğum işlev, kullanıcı parolasını sıfırlar ve yeni olanı e-postayla gönderir. Ben şöyle yapın:C#

String userPath = "WinNT://" + Environment.MachineName + "/" + username.Text; 
DirectoryEntry de = new DirectoryEntry(userPath); 
de.Invoke("SetPassword", new object[] { password }); 

nasıl da kendi şifre kendilerine gönderilecektir şifrenizle giriş dahaki sefere değişikliğini zorunlu bayrağı kontrol edebilirim?

de.Properties["pwdLastSet"].Value = 0; 

Ama bu görünüşte sadece LDAP, değil WinNT çalışır ve ben yerel olarak yapıyorum: Öyle gibi pwdLastSet kullanarak çalıştı.

Herhangi bir uzman benden daha iyi bir şey biliyor mu? Komut satırında bunu yapmanın bir yolunu aramaya çalıştım, böylece sadece bir Süreç yaratabilirim, ama ben de bu şekilde yapmanın bir yolunu bulamadım.

cevap

6

WinNT için değeri 0 yerine 1 olarak ayarlamalısınız ve özellik adı "pwdLastSet" yerine "PasswordExpired"; Başka bir deyişle http://msdn.microsoft.com/en-us/library/aa746542(VS.85).aspx

bkz WinNT için bunu:

de.Properties["PasswordExpired"].Value = 1; 

(O kafa karıştırıcı biliyorum ama LDAP için size tutarsızlık için işte nasıl 0'a özelliği "PwdLastSet" ayarlamanız gerekir!