تطبيق سطح المكتب dotNET
مثال على تطبيق سطح المكتب Dotnet لـ Casdoor.
كيفية تشغيل المثال
المتطلبات الأساسية
- dotNET 6 SDK
- وقت تشغيل WebView2 (عادة ما يكون مثبتًا مسبقًا على Windows)
التهيئة
التهيئة تتطلب 5 معاملات، جميعها من نوع السلسلة النصية:
الاسم | الوصف | الملف |
---|---|---|
Domain | مضيف/نطاق خادم Casdoor الخاص بك | CasdoorVariables.cs |
ClientId | معرف العميل لتطبيق Casdoor الخاص بك | CasdoorVariables.cs |
AppName | اسم تطبيق Casdoor الخاص بك | CasdoorVariables.cs |
CallbackUrl | مسار عنوان URL للرد الخاص بتطبيق Casdoor. إذا لم يتم توفيره، سيكون casdoor://callback | CasdoorVariables.cs |
ClientSecret | السر الخاص بالعميل لتطبيق Casdoor الخاص بك | CasdoorVariables.cs |
إذا لم تقم بتعيين هذه المعاملات، سيستخدم المشروع افتراضيًا عرض Casdoor عبر الإنترنت كخادم Casdoor وCasnode كتطبيق Casdoor.
التشغيل
Visual Studio
- افتح
casdoor-dotnet-desktop-example.sln
- اضغط
Ctrl + F5
للبدء
سطر الأوامر
cd src/DesktopApp
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);