2010-10-07 15 views
5

के साथ अगले लॉगिन पर पासवर्ड बदलने के लिए मजबूर करें। मैं एएसपी.नेट में एक वेब ऐप के लिए एक फ़ंक्शन लिख रहा हूं जहां क्लाइंट सर्वर मशीन में लॉग इन करता है, जो कि सर्वर पर स्थानीय उपयोगकर्ताओं के खिलाफ Windows प्रमाणित है। जो फ़ंक्शन मैं लिख रहा हूं वह उपयोगकर्ता पासवर्ड रीसेट करता है और उन्हें नया ईमेल करता है। मैं तो इस तरह कार्य करें:स्थानीय उपयोगकर्ता को सी #

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

कैसे मैं भी झंडा उनके पासवर्ड अगली बार जब वे पासवर्ड उन्हें ईमेल कर दी के साथ प्रवेश करें बदलने के लिए उपयोगकर्ता के लिए मजबूर करने की जांच कर सकते हैं? मैं तो जैसे pwdLastSet का उपयोग कर की कोशिश की:

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

लेकिन यह जाहिरा तौर पर केवल एलडीएपी, नहीं WinNT साथ काम करता है, और मैं स्थानीय रूप से यह कर रहा हूं।

कोई भी विशेषज्ञ मुझसे बेहतर कुछ जानता है? मैंने कमांड लाइन के माध्यम से ऐसा करने का एक तरीका ढूंढने की भी कोशिश की है ताकि मैं सिर्फ एक प्रक्रिया बना सकूं, लेकिन मैं इसे इस तरह से करने का कोई तरीका नहीं ढूंढ पा रहा हूं।

उत्तर

6

WinNT के लिए, आपको मान को 0 के बजाय 1 पर सेट करना होगा, और संपत्ति का नाम "pwdLastSet" के बजाय "पासवर्ड एक्स्पेरड" है; देख http://msdn.microsoft.com/en-us/library/aa746542(VS.85).aspx

दूसरे शब्दों में, WinNT के लिए ऐसा करते हैं:

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

(यह भ्रामक है मुझे पता है, लेकिन LDAP के लिए आप कैसे है कि विसंगति के लिए 0 पर संपत्ति "pwdLastSet" स्थापित करने के लिए की जरूरत है!)

संबंधित मुद्दे