แอปพลิเคชันเดสก์ท็อป dotNET
ตัวอย่าง แอปพลิเคชันเดสก์ท็อป Dotnet สำหรับ Casdoor
วิธีการรันตัวอย่าง
ข้อกำหนดเบื้องต้น
- dotNET 6 SDK
- WebView2 Runtime (โดยปกติจะติดตั้งไว้ล่วงหน้าบน Windows)
การเริ่มต้นใช้งาน
การเริ่มต้นใช้งานต้องการพารามิเตอร์ 5 ตัว ทั้งหมดเป็นประเภท string:
ชื่อ | คำอธิบาย | ไฟล์ |
---|---|---|
Domain | โฮสต์/โดเมนของเซิร์ฟเวอร์ Casdoor ของคุณ | CasdoorVariables.cs |
ClientId | Client ID ของแอปพลิเคชัน Casdoor ของคุณ | CasdoorVariables.cs |
AppName | ชื่อของแอปพลิเคชัน Casdoor ของคุณ | CasdoorVariables.cs |
CallbackUrl | เส้นทางของ URL สำหรับการเรียกกลับสำหรับแอปพลิเคชัน Casdoor ของคุณ หากไม่ได้ระบุไว้ จะเป็น casdoor://callback | CasdoorVariables.cs |
ClientSecret | Client Secret ของแอปพลิเคชัน 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();
การใช้ Auth Code เพื่อรับข้อมูลผู้ใช้
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);