【问题标题】:Validate Thinktecture OAuth Token in web api在 web api 中验证 Thinktecture OAuth 令牌
【发布时间】:2014-12-25 11:21:28
【问题描述】:

我正在尝试使用 Thinktecture 身份服务器来保护带有 angularjs 前端的 Web api。我可以使用以下代码通过 api 控制器从 Identity Server 获取 OAuth 令牌:

    [HttpPost]
    public async Task<JObject> LogOn(UserModel userModel)
    {
        System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

        var client = new OAuth2Client(
            new Uri("https://identity.app.net/issue/oauth2/token"),
            "dd",
            "secret");

        var result =
            await
                client.RequestResourceOwnerPasswordAsync(userModel.UserName, userModel.Password,
                    @"http://my.app.net/");
        return result.Json ;
    }

这会返回一个令牌。如果令牌在请求的标头中传递,我似乎无法弄清楚如何让 [Authorize] 标记工作。

【问题讨论】:

  • 你得到什么错误?

标签: asp.net-web-api oauth-2.0 thinktecture-ident-server


【解决方案1】:

老问题 - 我希望你能找到答案?

您需要将令牌作为不记名令牌添加到调用 Web api 的客户端。从 .Net 客户端它会是这样的(其中“令牌”将是您调用 RequestResourceOwnerPasswordAsync 的“结果”):

var client = new HttpClient();    
client.SetBearerToken(token);
var response = client.GetStringAsync(<yourUrl>).Result;

在 Angular 中你可能需要拦截一些东西(我不是一个前端的人 ;-)): http://www.codeproject.com/Articles/784106/AngularJS-Token-Authentication-using-ASP-NET-Web-A

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2011-09-03
    • 2014-12-24
    相关资源
    最近更新 更多