2011-04-04 5 views
10

मेरे पास UserPrincipal ऑब्जेक्ट बहुत सारी संपत्तियों के साथ है, लेकिन मुझे पासवर्ड की तिथि समाप्त होने की तारीख के लिए कोई संपत्ति नहीं मिल रही है।प्रिंसिपल कॉन्टेक्स्ट और उपयोगकर्ता प्रिंसिपल पासवर्ड कैसे समाप्त होने पर जानना है?

यह कैसे किया जा सकता है?

उत्तर

7

यह सबसे सरल दृष्टिकोण मैं साथ आने के लिए सक्षम था ... है

using System.DirectoryServices; 
using System.DirectoryServices.AccountManagement; 
using ActiveDs; 

//... 

PrincipalContext domain = new PrincipalContext(ContextType.Domain); 
UserPrincipal user = UserPrincipal.FindByIdentity(domain, "username"); 
DirectoryEntry entry = (DirectoryEntry)user.GetUnderlyingObject(); 
IADsUser native = (IADsUser)entry.NativeObject; 
Console.WriteLine(user.GivenName + "'s password will expire on " + native.PasswordExpirationDate); 


नोट # 1: ActiveDsकी कॉम टैब पर सूचीबद्ध है के रूप में संदर्भ संवाद जोड़े सक्रिय डीएस प्रकार पुस्तकालय

नोट # 2: जहां तक ​​मैं कह सकता हूं, PasswordExpirationDate यूटीसी समय में है।

+0

शानदार उत्तर। धन्यवाद! एक टिप - कभी-कभी, 'FindByIdentity' का उपयोग करना बहुत धीमा है। ज्यादातर स्थानीय मशीनों पर। इन मामलों में, 'प्रिंसिपलशियर' – itsho

+0

का उपयोग करना बेहतर है, मैं आमतौर पर "* प्रिंसिपल *" कक्षाओं का उपयोग नहीं करता हूं। मैं DirectoryEntry और DirectorySearcher ऑब्जेक्ट्स को प्राथमिकता देता हूं। मेरे परीक्षणों में वे तेजी से होते हैं। –

+0

सक्रिय विधानसभा किस विधानसभा में रहता है? – Bartosz

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