2011-09-20 15 views
6

मैं में उपयोगकर्ता खाते के लिए एक्सेस टोकन प्राप्त करने के लिए LogonUser(...) का उपयोग करने का प्रयास कर रहा हूं।लॉगऑनसर (...) डोमेन खातों के लिए क्यों नहीं काम करता है?

// Call LogonUser to obtain a handle to an access token. 
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(), 
    LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, 
    out safeTokenHandle); 

जब मैं नमूना (प्रशासक विशेषाधिकारों के साथ) चलाने यह ठीक काम करता है जब . की एक डोमेन और एक स्थानीय उपयोगकर्ता खाता नाम और पासवर्ड दिया है, लेकिन कोई बात नहीं मैं मैं त्रुटि कोड 1326 (लॉग ऑन विफल हो क्या करना : अज्ञात उपयोगकर्ता नाम या खराब पासवर्ड) यदि मैं किसी डोमेन खाते का उपयोग करने का प्रयास करता हूं। यदि मैं डोमेन के लिए कचरा दर्ज करता हूं तो मुझे वही परिणाम मिलता है, जो मुझे आश्चर्यचकित करता है कि यह वास्तव में डीसी से संपर्क कर रहा है या नहीं।

काम करने से इसे रोकना क्या हो सकता है?

+1

दुर्भाग्यवश दुर्भाग्य से चीजों के समूह के कारण हो सकता है। क्या मशीन डोमेन से जुड़ी है? क्या डोमेन उपयोगकर्ता को उस मशीन पर लॉग इन करने की अनुमति है? क्या DNS सेटिंग्स सही तरीके से कॉन्फ़िगर की गई हैं? (मैंने एक साइट्रिक्स आलेख देखा जो सुझाव दिया कि यह एक मुद्दा हो सकता है।)। निम्न आलेख में कुछ जानकारी है जब आप डोमेन के लिए कचरा दर्ज करते हैं - https://groups.google.com/group/microsoft.public.dotnet.languages.csharp/msg/dccfbf8b76120401?pli=1 –

+0

क्या आपके पास है मान्य है कि यह कंसोल के बिना काम करता है। रीडलाइन() कॉल (उदाहरण के लिए सीधे एक स्ट्रिंग के रूप में पासवर्ड की आपूर्ति)? –

+0

यह कोई फर्क नहीं पड़ता कि पासवर्ड कहां से आता है - यह एक स्ट्रिंग है जब इसे 'लॉगऑनसर' में पास किया जाता है। – GraemeF

उत्तर

0

कि मामले के लिए एक खाली domainname साथ उपयोग DOMAIN\LOGIN ...

+0

मुझे 'DOMAIN \ USERNAME' और' USERNAME @ DOMAIN' दोनों के लिए एक ही त्रुटि डोमेन नाम के साथ एक ही त्रुटि मिलती है जिसे 'लॉगऑनसर' में पास किया गया है। – GraemeF

1

मेरे मामले में यह तथ्य यह है कि, हालांकि मैं एक डोमेन उपयोगकर्ता के रूप में अपने कंप्यूटर में लॉग इन किया गया था, अपने कंप्यूटर नहीं का ही एक हिस्सा था डोमेन। एक बार डोमेन में जोड़ा गया नमूना काम करना शुरू कर दिया।

+7

डोमेन उपयोगकर्ता के रूप में लॉग इन होने पर आप अपने कंप्यूटर में लॉग इन कैसे करते हैं? – WilfriedVS

1

मेरे मामले में समस्या प्रश्नकर्ता के समान समस्या यह थी कि वह खाता जिस डोमेन को प्रमाणित करने का प्रयास कर रहा था वह उस डोमेन में था जो मेरी वर्तमान मशीन का नहीं था। मूल पोस्टर के विपरीत, मेरी मशीन को इस अन्य डोमेन का हिस्सा नहीं बनना चाहिए और नहीं हो सकता है। मैं लॉगिन चाहता था कि लॉगिन इस डोमेन पर संसाधन पर कार्रवाई करे।

जवाब था निम्नलिखित

bool success = LogonUser(
       userName, 
       domain, 
       password, 
       (int)LOGON32_LOGON_NEW_CREDENTIALS, //9 
       (int)LOGON32_PROVIDER_DEFAULT, //0 
       out userToken); 
निम्नलिखित स्थिरांक परिभाषित साथ

:

public const int LOGON32_LOGON_NEW_CREDENTIALS = 9; 
public const int LOGON32_PROVIDER_DEFAULT = 0; 

उम्मीद है कि यह अन्य लोगों को जो एक ऐसी ही स्थिति में खो जाते हैं में मदद मिलेगी।

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