C# 将浏览器中的令牌和值发送到Web api

C# 将浏览器中的令牌和值发送到Web api,c#,authentication,asp.net-web-api,authorization,token,C#,Authentication,Asp.net Web Api,Authorization,Token,有了Postman,我可以做一个Get并发送Auth Token作为头键,然后是一个类似Z4TTHmY98=gFw2rG的值,然后它进入web api方法,就像根据自定义属性检查一样 但是,我想使用浏览器 以下是命中的api http://localhost:29001/api/test 我的头密钥=身份验证令牌 我的标题值=Z4TTHY98=gFw2rG 在阅读了一些文章之后,我认为这会起作用,但在逐步调试WebAPI方法时,头是空的 是否可以使用not的浏览器?如果是,怎么做 http

有了Postman,我可以做一个Get并发送
Auth Token
作为头键,然后是一个类似
Z4TTHmY98=gFw2rG
的值,然后它进入web api方法,就像根据自定义属性检查一样

但是,我想使用浏览器

以下是命中的api

http://localhost:29001/api/test  
我的头密钥=身份验证令牌
我的标题值=Z4TTHY98=gFw2rG

在阅读了一些文章之后,我认为这会起作用,但在逐步调试WebAPI方法时,头是空的

是否可以使用not的浏览器?如果是,怎么做

http://localhost:29001/api/test?Auth-Token=Z4TTHmY98=gFw2rG

使用Webapi 2参数绑定

您可以通过浏览器拨打电话,如下所示

 http://localhost:29001/api/test/Z4TTHmY98=gFw2rG/

[HttpGet]
[Route("/test/{AuthToken}")
public IHttpActionResult Test([FromUri] string AuthToken) 
{
    //Do whatever you want to do.
}

小心路线。需要在
webapiconfig

浏览器打开页面不发送自定义标题中正确配置。但是,您可以使用所需的自定义标题发送AJAX请求。下面的示例使用

$.ajax({
url:“/api/test”,
标题:{'Auth Token':'Z4TTHmY98=gFw2rG'}
});
更新

如果您希望在页面的每个AJAX请求中发送相同的标题,可以使用
ajaxSetup
+
beforeSend

$.ajaxSetup({
发送前:函数(xhr){
setRequestHeader('Auth-Token','Z4TTHmY98=gFw2rG');
}
});

AJAX页面请求可以像
ajaxSetup
+
发送前一样使用:

$.ajaxSetup({
发送前:函数(xhr){
setRequestHeader('Auth-Token','Z4TTHmY98=gFw2rG');
}
});
信息

如果您想使用相同的API调用第三方API,那么可以使用like

objHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Key", "value");
objHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "zMXGa8WNQuaBxWazgUhO2dw=");

将控制器中的令牌作为字符串参数接收?
public ActionResult Test(string AuthToken)
应该不带破折号,使用默认路由设置我知道如何为此设置Web Api,我想知道如何在浏览器中发送url确保-我可以发送url,问题是它是出于某种原因在标题中发送的,我只是希望浏览器能够发送,但这不是什么大问题。这当然是一种创造性的方式,但我必须改变web api路由和方法,然后整个高级授权类(搜索数据库中的键/值对)就不可能了,因为问题的关键是真正存在松耦合/分离问题——这将迫使api控制器进行安全协议握手,而这不是我的方法应用程序正常工作,不允许使用web api方法,这很好——希望浏览器能够做到,我将使用postman,当然还有客户端thx