Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在我的REST控制器中获取承载令牌_C#_Graph_Bearer Token - Fatal编程技术网

C# 如何在我的REST控制器中获取承载令牌

C# 如何在我的REST控制器中获取承载令牌,c#,graph,bearer-token,C#,Graph,Bearer Token,你好(对不起我的英语不好) 我有一个Angular Vue.js前端,可以连接到C#中的Rest Api服务。我至少开发了20项服务。现在我要保护他们 与邮递员和网址。。。我获取“令牌”,然后我尝试获取授权,并对给定令牌进行硬编码,结果如下: “状态代码”:200, “理由短语”:“授权” 我是这样做的: public class TokenController : ApiController { public IHttpActionResult Get()

你好(对不起我的英语不好)

我有一个Angular Vue.js前端,可以连接到C#中的Rest Api服务。我至少开发了20项服务。现在我要保护他们

与邮递员和网址。。。我获取“令牌”,然后我尝试获取授权,并对给定令牌进行硬编码,结果如下: “状态代码”:200, “理由短语”:“授权”

我是这样做的:

    public class TokenController : ApiController
    {
        public IHttpActionResult Get()
        {
            Task<HttpResponseMessage> d = TokenManager.GetGroups("token");
            return Ok(d);
        }
    }


    public static Task<HttpResponseMessage> GetGroups(string token)
    {
        var httpClient = new HttpClient();

        var uri = "https://graph.microsoft.com/v1.0/groups";
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

        var res = httpClient.GetAsync(uri, HttpCompletionOption.ResponseContentRead).Result;

        return Task.Delay(3000).ContinueWith(t => res);
    }
公共类令牌控制器:ApiController
{
public IHttpActionResult Get()
{
Task d=TokenManager.GetGroups(“token”);
返回Ok(d);
}
}
公共静态任务组(字符串标记)
{
var httpClient=新的httpClient();
var uri=”https://graph.microsoft.com/v1.0/groups";
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载者”,令牌);
var res=httpClient.GetAsync(uri,HttpCompletionOption.ResponseContentRead);
返回任务。延迟(3000)。继续(t=>res);
}
我的问题是,我不知道从哪里或怎样才能从“前线”获得“持票人代币”。我无法通过服务URL中的参数获取令牌,因为它太长了


谢谢。

有要求。我有持票人代币


我在我的控制器中调用“string tt=Request.Headers.Authorization.ToString();”,它在Request.Headers中运行良好


我在我的控制器中调用“string tt=Request.Headers.Authorization.ToString();”,使用
,它可以正常工作

。结果
会让您感到死锁。自学如何正确使用水龙头。我尝试使用以下方法:使用(var res2=await httpClient.GetAsync(uri,HttpCompletionOption.ResponseContentRead)){string json=await res2.Content.ReadAsStringAsync();userInformation=parser.Deserialize(json);userInformation.StatusCode=res2.StatusCode.ToString();userInformation.ReasonPhrase=res2.ReasonPhrase;}但我没有得到任何答案。。邮递员停留装货。。。我搜索更多。。谢谢。使用
.Result
会让您在整个过程中遇到死锁问题。自学如何正确使用水龙头。我尝试使用以下方法:使用(var res2=await httpClient.GetAsync(uri,HttpCompletionOption.ResponseContentRead)){string json=await res2.Content.ReadAsStringAsync();userInformation=parser.Deserialize(json);userInformation.StatusCode=res2.StatusCode.ToString();userInformation.ReasonPhrase=res2.ReasonPhrase;}但我没有得到任何答案。。邮递员停留装货。。。我搜索更多。。非常感谢。