c# – 使用用户名和密码从WPF应用程序进行GitHub身份验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用用户名和密码从WPF应用程序进行GitHub身份验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1620字,纯文字阅读大概需要3分钟。
内容图文
![c# – 使用用户名和密码从WPF应用程序进行GitHub身份验证](/upload/InfoBanner/zyjiaocheng/771/5c433e9d67ca480c83fec63dc42f0c18.jpg)
我正在开发一个小型WPF应用程序,它将位于Local Git Repo之上.
它是一个业务线应用程序,允许一些业务用户通过GUI编辑一些文件,然后将它们推回到GitHub
我正在使用LibGit2Sharp库来处理所有git命令,但我也想在每次加载应用程序时强制用户使用他们的GitHub凭据登录到应用程序.
我一直在关注OAuth2库和&一些现有的nuget软件包(http://johnnycode.com/GitHubOAuth2Client/),但它们似乎都围绕着一个基于Web的应用程序,并且需要客户端ID和密钥.
任何人都可以指向一个简单的API的方向,该API将采用用户名&密码并为登录尝试返回一个简单的成功/失败,或者我坚持在GitHub API周围编写自己的包装器
解决方法:
我最后通过对旧版v2 API的简单REST调用来解决这个问题,通过UserName&请求特定仓库时,auth标头中的密码.然后检查在请求的Repo上返回的权限.
private class Permissions
{
public bool Admin { get; set; }
public bool Push { get; set; }
public bool Pull { get; set; }
}
private class GitHubRepo
{
public Permissions Permissions { get; set; }
public string Name { get; set; }
}
public bool Authenticate(string userName, string password)
{
try
{
var apiUrl = "https://api.github.com/";
var resource = "repos/myAccount/";
var repoName = "myRepo";
var client = new RestClient
{
BaseUrl = apiUrl,
Authenticator = new HttpBasicAuthenticator(userName, password)
};
var request = new RestRequest {Resource = string.Join("", resource, repoName)};
var response = client.Execute<List<GitHubRepo>>(request);
if ((int) response.StatusCode >= 200 && (int) response.StatusCode < 209)
{
if (response.Data.Any(r => r.Name == repoName))
{
var repo = response.Data.Single(r => r.Name == repoName);
if (repo.Permissions.Admin || (repo.Permissions.Pull && repo.Permissions.Push))
{
return true;
}
}
}
return false;
}
catch
{
return false;
}
}
内容总结
以上是互联网集市为您收集整理的c# – 使用用户名和密码从WPF应用程序进行GitHub身份验证全部内容,希望文章能够帮你解决c# – 使用用户名和密码从WPF应用程序进行GitHub身份验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。