1

我正在开发一个应用程序,我有一个Azure API使用Owin Token Bearer. 我正在尝试登录到我的后端并像在我的网络客户端中一样获取令牌。我可以成功登录,但响应消息中没有令牌。我有这个代码

 string _url = ServerPath.Path + "/token";
 HttpResponseMessage message = await _url.PostUrlEncodedAsync(
     new {
         UserName = Username,
         Password = Password,
         grant_type = "password"
     }
);

任何帮助都感激不尽。

4

1 回答 1

1

您使用的身份验证方法返回标准OAuth 2.0 令牌响应。令牌在HttpResponseMessage您要回来的地方,FlurlReceiveJson可以帮助您将其取出:

var response = await _url
    .PostUrlEncodedAsync(new
    {
        UserName = Username,
        Password = Password,
        grant_type = "password"
    })
    .ReceiveJson();

var token = (string)response.access_token;

请注意,我使用了此处的非通用版本ReceiveJson,它返回一个dynamic. TokenResponse您可以通过创建一个与整个响应主体的 JSON 结构匹配的类(称为它)来使其更加健壮,使用ReceiveJson<TokenResponse>(),并有一个强类型的响应对象可供access_token提取。

于 2017-09-25T15:05:28.463 回答