كيفية الحصول على اسم المستخدم الحالي لنظام Windows في C#؟
مرحبًا بالجميع! أنا مطور C# مبتدئ وأكتب تطبيقًا صغيرًا للاستخدام الداخلي في شركتنا. أحتاج إلى أن يحدد البرنامج تلقائيًا أي من الموظفين يعمل حاليًا على الكمبيوتر ويسجل هذا الاسم في السجل.
لقد جربت استخدام `Environment.UserName`، لكن يبدو أنه لا يُرجع ما أحتاجه بالضبط. كما سمعت عن `WindowsIdentity.GetCurrent()`، لكنني لا أفهم الفرق بين هذين الأسلوبين.
إليك مثال على الكود الخاص بي الذي اعتقدت أنه يجب أن يعمل:
```csharp
using System;
class Program
{
static void Main()
{
string currentUser = Environment.UserName;
Console.WriteLine("المستخدم الحالي: " + currentUser);
}
}
```
المشكلة هي أنه عندما أقوم بتشغيل التطبيق عبر Task Scheduler كـ SYSTEM أو تحت حساب خدمة آخر، أحصل على اسم الخدمة بدلاً من اسم المستخدم الحقيقي الذي يجلس أمام الكمبيوتر. أرجو إرشادي حول كيفية الحصول بشكل صحيح على اسم المستخدم الذي قام بتسجيل الدخول إلى النظام.