दिलचस्प पोस्ट
मैं ब्राउज़र का प्रमाणीकरण संवाद कैसे दबा सकता हूं? PHP / Perl के माध्यम से उपयोगकर्ता ब्राउज़र में पीडीएफ फाइलें दिखाएं अपरिभाषित व्यवहार कहीं बढ़ावा: आत्मा :: qi :: वाक्यांश_पाठ मुझे कैसे पता चलेगा कि SKSpriteNode को छुआ गया है कोकोपोड्स चेतावनी – कोकाओपॉड ने आपके प्रोजेक्ट का आधार कॉन्फ़िगरेशन सेट नहीं किया क्योंकि क्योंकि आपके प्रोजेक्ट में पहले से ही एक कस्टम कॉन्फ़िगरेशन सेट है जावास्क्रिप्ट: मैं एक विशिष्ट सूचकांक में एक स्ट्रिंग कैसे सम्मिलित कर सकता हूँ I ओरेकल: एक टाइमस्टैम्प में मिनट कैसे जोड़ सकते हैं? बड़ी फ़ाइलों को हटाते हुए, एक गिट रेपो इतिहास के साथ एक विकास टीम को अपडेट करें नईलाइन को जोड़ने के बिना QPlainTextEdit को पाठ जोड़ने के लिए, और नीचे स्क्रॉल क्यों रखें? गिट अस्थिर परिवर्तन के साथ शाखा परिवर्तन की अनुमति देता है बूटस्ट्रैप सीएसएस टेम्पलेट को अनुकूलित करना एक्सकोड 4: बिल्ड विफल, कोई समस्या नहीं PHP: HTTP या HTTPS? मजबूत / कमजोर / बनाए रखा / असुरक्षित / उलटा हुआ / असाइन करें प्रथम स्तंभ की सामग्री के आधार पर एक विशाल सीएसवी फ़ाइल कैसे विभाजित है?

सी # में लॉगऑन सीआईडी ​​कैसे प्राप्त करें

कैसे एक विंडोज लॉगऑन सीआईडी ​​C # .net में पुनः प्राप्त है? (यूजर एसआईडी नहीं, बल्कि प्रत्येक सत्र के लिए अद्वितीय नया)

Solutions Collecting From Web of "सी # में लॉगऑन सीआईडी ​​कैसे प्राप्त करें"

मुझे डर है कि आपको P / Invoke का उपयोग करने का सहारा है एक उदाहरण है कि इसे कैसे करें pinvoke.net (कृपया पृष्ठ के नीचे देखें):

 Result = GetTokenInformation(WindowsIdentity.GetCurrent().Token, TOKEN_INFORMATION_CLASS.TokenSessionId , TokenInformation , TokenInfLength , out TokenInfLength ); 

कृपया ध्यान दें कि मैंने सिर्फ एक पंक्ति में परिवर्तन करके उदाहरण को बदल दिया है, मैं TOKEN_INFORMATION_CLASS.TokenUser को TOKEN_INFORMATION_CLASS.TokenSessionId साथ बदल दिया है जो कि वास्तव में आपकी क्या ज़रूरत है।

उम्मीद है की यह मदद करेगा।

अद्यतन: यहां काम (कम से कम मेरी मशीन पर) कोड है:

 using System; using System.Runtime.InteropServices; using System.Security.Principal; namespace LinqTest { public class ClsLookupAccountName { public const uint SE_GROUP_LOGON_ID = 0xC0000000; // from winnt.h public const int TokenGroups = 2; // from TOKEN_INFORMATION_CLASS enum TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, TokenOrigin } [StructLayout(LayoutKind.Sequential)] public struct SID_AND_ATTRIBUTES { public IntPtr Sid; public uint Attributes; } [StructLayout(LayoutKind.Sequential)] public struct TOKEN_GROUPS { public int GroupCount; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] public SID_AND_ATTRIBUTES[] Groups; }; // Using IntPtr for pSID instead of Byte[] [DllImport("advapi32", CharSet = CharSet.Auto, SetLastError = true)] static extern bool ConvertSidToStringSid(IntPtr pSID, out IntPtr ptrSid); [DllImport("kernel32.dll")] static extern IntPtr LocalFree(IntPtr hMem); [DllImport("advapi32.dll", SetLastError = true)] static extern bool GetTokenInformation( IntPtr TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, IntPtr TokenInformation, int TokenInformationLength, out int ReturnLength); public static string GetLogonId() { int TokenInfLength = 0; // first call gets lenght of TokenInformation bool Result = GetTokenInformation(WindowsIdentity.GetCurrent().Token, TOKEN_INFORMATION_CLASS.TokenGroups, IntPtr.Zero, TokenInfLength, out TokenInfLength); IntPtr TokenInformation = Marshal.AllocHGlobal(TokenInfLength); Result = GetTokenInformation(WindowsIdentity.GetCurrent().Token, TOKEN_INFORMATION_CLASS.TokenGroups, TokenInformation, TokenInfLength, out TokenInfLength); if (!Result) { Marshal.FreeHGlobal(TokenInformation); return string.Empty; } string retVal = string.Empty; TOKEN_GROUPS groups = (TOKEN_GROUPS)Marshal.PtrToStructure(TokenInformation, typeof(TOKEN_GROUPS)); int sidAndAttrSize = Marshal.SizeOf(new SID_AND_ATTRIBUTES()); for (int i = 0; i < groups.GroupCount; i++) { SID_AND_ATTRIBUTES sidAndAttributes = (SID_AND_ATTRIBUTES)Marshal.PtrToStructure( new IntPtr(TokenInformation.ToInt64() + i * sidAndAttrSize + IntPtr.Size), typeof(SID_AND_ATTRIBUTES)); if ((sidAndAttributes.Attributes & SE_GROUP_LOGON_ID) == SE_GROUP_LOGON_ID) { IntPtr pstr = IntPtr.Zero; ConvertSidToStringSid(sidAndAttributes.Sid, out pstr); retVal = Marshal.PtrToStringAuto(pstr); LocalFree(pstr); break; } } Marshal.FreeHGlobal(TokenInformation); return retVal; } } } 

एनबी मैंने इसे अपने एक्स 64 मशीन पर परीक्षण किया है, तो कृपया TokenInformation.ToInt64() पर TokenInformation.ToInt64() ध्यान रखें। TokenInformation.ToInt64() कोड का टुकड़ा है, शायद आपको उसे TokenInformation.ToInt32() साथ बदल देना चाहिए। TokenInformation.ToInt32()

System.Security.Principal.WindowsIdentity.GetCurrent ()। User.AccountDomainSid – चाल हो सकती है?

मुझे पता है यह एक पुरानी पोस्ट है बस इस समस्या में भाग गया क्योंकि मुझे आईसीए सत्र आईडी और आरडीपी सत्र आईडी प्राप्त करने के लिए प्रत्येक कार्यक्रम के प्रत्येक प्रकार के रिमोट कनेक्शन के लिए सही चर को इकट्ठा करना था। वर्तमान सत्र आईडी Regedit HKEY_CURRENT_USER \ Remote * में स्थित है। चूंकि मुझे डब्ल्यूटीएस के कोई विकल्प नहीं मिल सका, मैं यहां अपना समाधान पोस्ट कर रहा हूं।

  // Prints out ICA or RDP session ID of current user using System; using Microsoft.Win32; namespace ViaRegedit { class Program03 { static void Main(string[] args) { // Obtain an instance of RegistryKey for the CurrentUser registry RegistryKey rkCurrentUser = Registry.CurrentUser; // Obtain the test key (read-only) and display it. RegistryKey rkTest = rkCurrentUser.OpenSubKey("Remote"); foreach (string valueName in rkTest.GetSubKeyNames()) { //Getting path to RDP/Citrix session ID string RDPICApath = ""; if (rkTest.OpenSubKey(valueName) != null && rkTest.OpenSubKey(valueName) != null) { RDPICApath = rkTest.OpenSubKey(valueName).ToString(); } Console.WriteLine("Getting CurrentUser ICA-RDP path from string = " + RDPICApath); //Seperating RDPICApath to get session number string RDPICAnumber = RDPICApath.Substring(RDPICApath.LastIndexOf('\\') + 1); Console.WriteLine("Current User RDPICAnumber = " + RDPICAnumber); } rkTest.Close(); rkCurrentUser.Close(); Console.ReadLine(); } } }