dotNET 桌面应用
一个用于Casdoor的Dotnet桌面应用示例。
如何运行示例
先决条件
- dotNET 6 SDK
- WebView2 运行时(通常预装在 Windows 上)
初始化
初始化需要5个参数,所有这些参数都是字符串类型:
名称 | 描述 | 文件 |
---|---|---|
Domain | 您的Casdoor服务器的主机/域 | CasdoorVariables.cs |
Clientid | 您的 Casdoor 应用程序的客户端 ID | CasdoorVariables.cs |
AppName | 您的Casdoor应用程序的名称 | CasdoorVariables.cs |
CallbackURL | 您的Casdoor应用程序的回调URL路径。 如果未提供,它将是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();
// 当登录成功时触发,您将在事件处理器中收到一个授权码
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);