التخطي إلى المحتوى الرئيسي

تطبيق سطح المكتب dotNET

مثال على تطبيق سطح المكتب Dotnet لـ Casdoor.

كيفية تشغيل المثال

المتطلبات الأساسية

التهيئة

التهيئة تتطلب 5 معاملات، جميعها من نوع السلسلة النصية:

الاسمالوصفالملف
Domainمضيف/نطاق خادم Casdoor الخاص بكCasdoorVariables.cs
ClientIdمعرف العميل لتطبيق Casdoor الخاص بكCasdoorVariables.cs
AppNameاسم تطبيق Casdoor الخاص بكCasdoorVariables.cs
CallbackUrlمسار عنوان URL للرد الخاص بتطبيق Casdoor. إذا لم يتم توفيره، سيكون casdoor://callbackCasdoorVariables.cs
ClientSecretالسر الخاص بالعميل لتطبيق Casdoor الخاص بكCasdoorVariables.cs

إذا لم تقم بتعيين هذه المعاملات، سيستخدم المشروع افتراضيًا عرض Casdoor عبر الإنترنت كخادم Casdoor وCasnode كتطبيق Casdoor.

التشغيل

Visual Studio

  1. افتح casdoor-dotnet-desktop-example.sln
  2. اضغط Ctrl + F5 للبدء

سطر الأوامر

  1. cd src/DesktopApp
  2. dotnet run

المعاينة

بعد تشغيل تطبيق سطح المكتب dotNET، ستظهر نافذة جديدة على سطح المكتب الخاص بك.الفهرس

إذا نقرت على زر Casdoor Login، ستظهر نافذة تسجيل الدخول على سطح المكتب الخاص بك. تسجيل الدخول

بعد تسجيل الدخول بنجاح، ستظهر نافذة ملف تعريف المستخدم على سطح المكتب الخاص بك، تعرض اسم المستخدم الخاص بك.ملف تعريف المستخدم

يمكنك معاينة العملية بأكملها في صورة GIF أدناه.صورة متحركة للمعاينة

كيفية الدمج

فتح نافذة تسجيل الدخول

var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();

استخدام رمز المصادقة للحصول على معلومات المستخدم

public async Task<string?> RequestToken(string clientId, string clientSecret, string code)
{
var body = new
{
grant_type = "authorization_code",
client_id = clientId,
client_secret = clientSecret,
code
};

var req = new RestRequest(_requestTokenUrl).AddJsonBody(body);
var token = await _client.PostAsync<TokenDto>(req);

return token?.AccessToken;
}

public async Task<UserDto?> GetUserInfo(string token)
{
var req = new RestRequest(_getUserInfoUrl).AddQueryParameter("accessToken", token);

return await _client.GetAsync<UserDto>(req);
}

...

var token = await _casdoorApi.RequestToken(
CasdoorVariables.ClientId,
CasdoorVariables.ClientSecret,
authCode
);

var user = await _casdoorApi.GetUserInfo(token);