【发布时间】:2020-02-26 02:56:59
【问题描述】:
我正在尝试在我的搜索功能中使用令牌。当我使用token搜索时,它只会检查token的header来识别请求应该全部通过。如果错误则取消请求并返回。
请求 JSON
{
"header": {
"Token": "558fedce-a84e-4a9a-8698-5cd27d5af3ed"
},
"body": {
"WarehouseCode": "W001",
"CompanyCode": "C001"
}
}
索引.cshtml
<div class="row">
<div class="col-md-4">
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.TextArea("track") <input type="submit" value="Track"/>
}
</div>
</div>
模型.cs
public class GetInvBalReq
{
public class GetData
{
public Header header { get; set; }
public Body body { get; set; }
}
public class Header
{
public string Token { get; set; }
}
public class Body
{
public string WarehouseCode { get; set; }
public string CompanyCode { get; set; }
}
}
HomeController.cs
这是搜索功能的控制器
[System.Web.Mvc.HttpPost]
public ActionResult Index(string track)
{
UploadToBCSSoftSCM b = new UploadToBCSSoftSCM();
string response = b.GetInvBal(track);
var data = JsonConvert.DeserializeObject<Rootobject>(response);
return View(data);
}
【问题讨论】:
-
很抱歉,无法理解您的问题。您面临的问题是什么?反序列化后您没有将对象转换为数据吗?
-
@sam。不,我想使用我的令牌检查(请求令牌)是否相同。
-
反序列化后 data.header.Token 将有来自请求的令牌。因此,您可以使用字符串函数将您的令牌与 data.header.Token 进行比较 - 对吗?顺便说一句,我认为,根据您在此处发布的模型,您的数据将为空,您不会反序列化为 GetInvBalReq.GetData。如果它为空,请尝试将其更改为
var data = JsonConvert.DeserializeObject<GetInvBalReq.GetData>(response); -
@sam 但是请求Token和响应Token不一样。因此,如果我使用响应令牌意味着我需要使用硬核作为请求令牌来发送 Web API。
标签: c# json asp.net-web-api