小编Igo*_*gor的帖子

使用.NET中的OAuth2.0双向方法访问Jira API

如何为JIRA Rest API创建访问令牌?我有相关数据

  • 用户密钥
  • 私钥/公钥组合

Jira的Rest API Oauth 示例采用三方法,并且非常不清楚要发送的实际参数是什么(我希望Swagger是更广泛使用的标准!).

更详细地说,我有以下用例:在Web窗体(ASPX)门户应用程序中创建新员工时,我需要创建新的JIRA帐户并将其分配给项目(以及项目中的角色).

因此,我想使用OAuth2双方式身份验证来实现此目的.我可以用基本身份验证破解它,但我真的想要正确地做到这一点.

尝试查找使用此方法的代码示例时出现问题..NET示例非常稀缺,甚至其他语言的示例通常使用基本身份验证(每次调用时传输的用户名和密码)或少数使用三脚法的示例.

我找到了AnotherJiraRestClient,但是查看它使用RestClient nuget的代码(这很好)但是使用HttpBasicAuthenticator(这很糟糕).

我浏览了所有提供的Authenticators,OAuth2AuthorizationRequestHeaderAuthenticator看起来很有希望,但它要求我已经拥有访问令牌.所以这就是为什么最后的问题是"如何使用两条腿的方法创建访问令牌?"

我已经使用以下设置在JIRA上创建了应用程序链接:

  • 应用类型:通用应用
  • 传出身份验证:(在Jira方面提供500个服务器错误......但不要认为这很重要,因为我没有使用它)
  • 传入身份验证:OAuth
    • 状态:已配置
    • 消费者密钥:TEST_JIRA_KEY
    • 公钥:...(生成在线私钥/公钥组合)

c# asp.net authentication oauth jira-rest-api

16
推荐指数
1
解决办法
2388
查看次数

使用WebApi服务中的[FromUri]属性忽略DataMember的Name属性

我们正在使用Asp.Net WebApi创建RestService.但由于某些原因Name,DataMember在尝试使用[FromURI]属性反序列化复杂属性时,属性会在属性中被忽略.

例如,我们可能有:方法:

public IHttpActionResult Get([FromUri]User user)
Run Code Online (Sandbox Code Playgroud)

模型:

[DataContract]
public class User
{
    [DataMember(Name = "username")]
    public string Username{ get; set; }
    [DataMember(Name = "isActive", IsRequired = false)]
    public bool? Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

反序列化时user,我们得到的用户名如预期,但nullActive.另一方面,在序列化数据时,我们得到了两个isActive并且username符合预期.如果我们active在查询字符串中发送请求,它按预期工作.

这显然是个问题IModelBinder.由于某种原因它不使用DataMemberName属性.我检查了包含哪些格式化程序,并注册了4个默认格式化程序:

System.Net.Http.Formatting.JsonMediaTypeFormatter
System.Net.Http.Formatting.XmlMediaTypeFormatter
System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter
System.Net.Http.Formatting.JQueryMvcFormUrlEncodedFormatter
Run Code Online (Sandbox Code Playgroud)

我无法检查请求使用哪一个.我会假设它,FormUrlEncodedMediaTypeFormatter但我无法确定.此外,我不确定它是否支持Name财产.

我已经检查了一个解决方案,我能找到的最接近的主题是WebAPI DataMember名称在通过application/x-www-form-urlencoded进行de/serial化时没有使用,但它不使用[FromUri]application/x-www-form-urlencoded属性并没有真正解决.

任何想法,指针或建议将不胜感激.

c# rest datamember asp.net-web-api2

13
推荐指数
1
解决办法
850
查看次数