एक .NET कोर कंसोल एप्लिकेशन (नोट: एएसपी.नेट कोर नहीं!) में, मैं वर्तमान उपयोगकर्ता कैसे प्राप्त कर सकता हूं? स्पष्ट होने के लिए, मैं देख रहा हूं कि थ्रेड के रूप में क्या उपलब्ध होना चाहिए। वर्तमान प्रिंसिपल, जो अब मौजूद नहीं है। प्लेटफ़ॉर्म सेवा में यह जानकारी नहीं है, और न ही पर्यावरण करता है।.NET कोर कंसोल में वर्तमान उपयोगकर्ता प्राप्त करना
उत्तर
समझ गया। एक संभावित विकल्प WindowsIdentity उपयोग करने के लिए है:
WindowsIdentity.GetCurrent().Name
यह System.Security.Principal.Windows पैकेज जोड़ने के लिए आवश्यक है। बेशक, यह केवल विंडोज़ के लिए है।
एक अन्य विकल्प के दावों का उपयोग करना है:
ClaimsPrincipal.Current
कि के लिए, जोड़ने के लिए पैकेज System.Security.Claims है। विंडोज़ में, डिफ़ॉल्ट रूप से, पहचान खाली हो जाएगी।
System.Security.Principal.Windows
तब तक उपलब्ध नहीं है जब तक आप मैन्युअल रूप से DLL आयात नहीं करते। मेरे लिए काम किया है:
Environment.UserName;
.NET Core System.Environment Source Code के अनुसार, इस समाधान "मामलों के 99% में पर्याप्त होना चाहिए।"
नोट: सुनिश्चित करें कि आप DotNetCore 2.0
या बाद में 1.0
और 1.1
को इस परिभाषा को लक्षित नहीं कर रहे हैं।
मुझे 'पर्यावरण ' –
में 'UserName' प्रतीत नहीं होता है, सुनिश्चित करें कि आप' DotNetCore 2.0' या बाद में लक्ष्यीकरण कर रहे हैं। 'DotNetCore 1.0' और' DotNetCore 1.1' में 'उपयोगकर्ता नाम' दिखाई नहीं देता है। –
आप IIdentity
अमूर्त का पुन: उपयोग करने के लिए अपने बीच की परत के माध्यम से पारित करना चाहते हैं ऐसा करते हैं:
var identity = new GenericIdentity(Environment.UserDomainName + "\\" + Environment.UserName, "Anonymous");
पी.एस. कोर 2 कंसोल अनुप्रयोग में: ClaimsPrincipal.Current
और Thread.CurrentPrincipal
हमेशा अशक्त हैं (जब तक आप सेटअप उन्हें) और इस कोड को या तो काम नहीं करेगा:
IPrincipal principal = new GenericPrincipal(identity, null);
AppDomain.CurrentDomain.SetThreadPrincipal(principal);
इस के बाद
ClaimsPrincipal.Current
और Thread.CurrentPrincipal
अभी भी रिक्त हैं।
WindowsIdentity.GetCurrent()
काम करता है, लेकिन System.Security.Principal.Window
को संदर्भित करने के लिए और अधिक मजबूत कारण होने चाहिए तो "उपयोगकर्ता नाम" प्राप्त करें।
- 1. विंडोज प्रमाणीकरण - वर्तमान उपयोगकर्ता नाम प्राप्त करना
- 2. नोड.जेएस-वर्तमान विंडोज उपयोगकर्ता नाम प्राप्त करना
- 3. .NET में, जांचें कि वर्तमान उपयोगकर्ता निर्देशिका
- 4. वर्तमान उपयोगकर्ता के लिए नेटवर्क क्रेडेंशियल प्राप्त करना (सी #)
- 5. Asp.Net कोर मिडलवेयर सेवा वर्तमान उपयोगकर्ता
- 6. .NET कोर
- 7. क्या एसिंक कंसोल अनुप्रयोग .NET कोर में समर्थित हैं?
- 8. आप .NET कोर कंसोल ऐप में उपयोगकर्ता ऐप डेटा कैसे संग्रहीत करते हैं
- 9. वर्तमान उपयोगकर्ता संदर्भ प्राप्त करें
- 10. .NET कोर
- 11. एंड्रॉइड ब्राउज़र में वर्तमान यूआरएल प्राप्त करना
- 12. .NET कोर
- 13. .net कोर
- 14. .NET कोर
- 15. Magento में वर्तमान उपयोगकर्ता?
- 16. .NET कोर
- 17. एएसपी.नेट कोर - उपयोगकर्ता
- 18. .NET कोर
- 19. वर्तमान नामस्थान में पाइथन इंटरैक्टिव कंसोल कैसे प्राप्त करें?
- 20. प्रतिनिधि में .NET कोर
- 21. .NET कोर में SOAP?
- 22. वर्तमान उपयोगकर्ता
- 23. वर्तमान उपयोगकर्ता
- 24. जावा में बहु-कोर प्राप्त करना - कैसे?
- 25. स्कोप प्राप्त करना एस्पेन कोर
- 26. .NET कोर
- 27. .net कोर
- 28. .NET कोर
- 29. .Net कोर
- 30. मैं .NET में Windows सेवा से वर्तमान में लॉग इन उपयोगकर्ता नाम कैसे प्राप्त करूं?
मैं लाइनों के बीच क्या सुनता हूं: दावा प्रिंसिपल भविष्य है;) – Thomas
'दावा प्रिंसिपल। वर्तमान * * नियंत्रक में काम नहीं करेगा, यह शून्य होगा। आपको 'HttpContext.User' संपत्ति तक पहुंचने की आवश्यकता है, जो वास्तव में' दावा प्रिंसिपल 'उदाहरण होगा। –
जानना अच्छा है। दावों के लिए एक स्थिर एपीआई आईएमएचओ के बावजूद इतना समझ नहीं लेता है। – Thomas