如何在我的REST控制器中获取Bearer令牌

时间:2019-04-03 17:44:43

标签: c# graph bearer-token

你好(抱歉我的英语不好)

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

使用POSTMAN和url https://login.microsoftonline.com ...,我得到“令牌”,然后尝试获得授权,然后将硬编码放入给定的令牌,其结果为:     “状态代码”:200,     “ ReasonPhrase”:“已授权”,

我这样做:

    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);
    }

我的问题是,我不知道从“前端”获取“承载者令牌”的位置或要做的事情。由于太长,我无法通过服务URL中的参数获取令牌。

谢谢。

1 个答案:

答案 0 :(得分:0)

有了Request.Headers,我就有了Bearer令牌。

我称“字符串tt = Request.Headers.Authorization.ToString();”在我的控制器中,效果很好