एक यूडब्ल्यूपी ऐप में, मैंने User Account Information
क्षमता सक्षम की है।यूडब्ल्यूपी ऐप में कुछ उपयोगकर्ता खाता जानकारी प्राप्त करने में असमर्थ - इन-प्रिमाइज सक्रिय निर्देशिका (Azure AD नहीं)
मैं की वर्तमान उपयोगकर्ता लॉग ऑन उपयोगकर्ता नाम और डोमेन नाम (अलग से उनमें से प्रत्येक) (- नहीं Azure AD उपयोगकर्ता किसी इन-आधार सक्रिय निर्देशिका खाते से लॉग ऑन हैं) प्राप्त करने के लिए की जरूरत है।
उदाहरण के लिए, उपयोगकर्ता उपयोगकर्ता नाम user1
का उपयोग कर सक्रिय निर्देशिका डोमेन domain1
पर लॉग इन करेगा। यानी domain1\user1
।
मैं आवश्यक जानकारी प्राप्त करने की कोशिश करने के लिए निम्न कोड का उपयोग कर रहा:
IReadOnlyList<User> users = await User.FindAllAsync();
var user = users.FirstOrDefault();
// get domain
var data1 = await user.GetPropertyAsync(KnownUserProperties.DomainName);
string strDomainName = (string)data1;
// get username
var data2 = await user.GetPropertyAsync(KnownUserProperties.AccountName);
string strUserName = (string)data2;
मुद्दे:
strDomainName
रिटर्नdomain1.com\user1
। इसमें हमारे सभी डोमेन के लिए.com
भाग क्यों शामिल है? सी # Winforms अनुप्रयोगों पर हम बिना किसी मुद्दे केdomain1\user1
आसानी से प्राप्त कर सकते हैं।strUserName
एक खाली स्ट्रिंग देता है। अर्थात। ""। यह कोई मूल्य क्यों नहीं लौटाता है?KnownUserProperties.FirstName
कोई रिक्त स्ट्रिंग रिटर्न:
मैं भी निम्नलिखित की जाँच की। i.e. "
KnownUserProperties.LastName
एक खाली स्ट्रिंग देता है। i.e. "KnownUserProperties.PrincipalName
एक खाली स्ट्रिंग देता है। i.e. "KnownUserProperties.ProviderName
एक खाली स्ट्रिंग देता है। i.e. "KnownUserProperties.GuestHost
एक खाली स्ट्रिंग देता है। i.e. ""
क्या मुझे कुछ और चीज है जो मुझे User Account Information
क्षमता के समान सक्षम करने की आवश्यकता है? या क्या इस जानकारी को प्राप्त करने के लिए ऐप को कोई अन्य अनुमतियां दी जानी चाहिए?
मैं समझता हूँ कि मैं strDomainName
का मूल्य मिलता है और मैं क्या जरूरत है पाने के लिए स्ट्रिंग कार्यों प्रदर्शन कर सकते हैं। लेकिन मैं जानना चाहता हूं कि इस जानकारी को सीधे प्राप्त करने का कोई तरीका है या नहीं। यह भी उत्सुक है कि KnownUserProperties.AccountName
और ऊपर सूचीबद्ध अन्य गुण जैसे FirstName
, LastName
आदि बस एक खाली स्ट्रिंग देता है।
मैं Target version
और Min Version
के रूप में सेट निम्नलिखित है:
मैं Windows के निम्न संस्करण चला रहा
सत्यापित करने के लिए, मैं भी साथ परीक्षण किया UserInfo sample project by Microsoft from GitHub और मुझे निम्न आउटपुट मिला:
निम्नलिखित स्वचालित रूप से Settings
>Privacy
>Account Info
में सक्षम था।
TestApp
एप्लिकेशन के साथ मैं करने की कोशिश की है और User Info C# Sample
GitHub से नमूना अनुप्रयोग है:
अद्यतन:
भी Enterprise Authentication
क्षमता सक्रिय करने के बाद, KnownUserProperties.PrincipalName
उम्मीद वापसी करता है मूल्य। यानी [email protected]
। हालांकि, इस तरह के रूप में FirstName
ऊपर सूचीबद्ध अन्य संपत्तियों, LastName
आदि सिर्फ एक खाली स्ट्रिंग वापस आती है और मैं अभी भी किसी भी संपत्ति है कि (.com
हिस्सा बिना) domain1\user1
रिटर्न