我正在使用Microsoft的可验证凭据示例:https://github.com/Azure-Samples/active-directory-verifiable-credentials-dotnet/tree/main/1-asp-net-core-api-idtokenhint
我不想根据测试使用固定的联系人值(请参阅IssuerController.cs(,而是想使用我添加到索引页面的表单中的查询参数(例如,名为"firstname"的输入(。我可以在结果页面URL中看到参数,但我找不到正确设置这些参数的方法。
我在IssuerController.cs中尝试了几种方法。首先,将静态值修改为查询请求:
payload["issuance"]["claims"]["given_name"] = HttpContext.Request.Query["firstname"].ToString();
我还尝试过设置一个属性:
[FromQuery(Name = "firstname")]
public string firstname { get; set; }
然后将属性添加到有效载荷中:
payload["issuance"]["claims"]["given_name"] = firstname;
遗憾的是,所有这些都导致了相同的错误:
"Missing provided claims in issuance: [given_name]","target":"issuance.claims"
供参考,方法签名为
public async Task<ActionResult> IssuanceRequest()
正如你可能会发现的,我对.NET.并不了解
请问正确的方法是什么?感谢
好的,我相信还有其他方法可以做到这一点,但我们最终通过修改Issuer.cshtml 中的IssuanceRequest方法来实现
fetch('/api/issuer/issuance-request?firstName=@HttpContext.Request.Query["firstName"].ToString()&lastName=@HttpContext.Request.Query["lastName"].ToString()&email=@HttpContext.Request.Query["email"].ToString()&phone=@HttpContext.Request.Query["phone"].ToString()')
无论如何,感谢的帮助
如果我理解正确,你只需要为你的操作方法添加一个参数:
public async Task<ActionResult> IssuanceRequest(string firstname)
如果您想指定值的来源和查询参数的名称(可选(,也可以添加FromQuery属性:
public async Task<ActionResult> IssuanceRequest([FromQuery(Name = "firstname"]string firstname)