我正在实施AngularJS SPA,后端实现为从Visual Studio 2013模板中接种的WebAPI。 AngularJS做了所有事情,包括登录,我已经成功地将它提交给// localhost/token,并且收回了一个我添加到后续请求头中的令牌。但是,我现在想根据用户角色决定要渲染哪些AngularJS模板,因此我需要角色(客户端)(我按角色保护我的所有服务器代码,以便做出这些决定客户端是好的。)使用OAuth和持票人令牌将用户角色从ASP.NET身份返回到AngularJS应用程序
为此我正在考虑加入沿此线的东西的...
foreach (var claim in context.Identity.Claims.Where(c => c.Type.EndsWith("/role")))
{
context.AdditionalResponseParameters.Add("role", claim.Value);
}
...到ApplicationOAuthProvider.TokenEndpoint()方法,以便将角色添加到JSON中,该JSON在获取令牌时返回到AngularJS代码。
我意识到上面的代码现在不适用于更多的一个角色,但我更感兴趣知道这是否是访问角色信息的正确方式,以及我是否以正确的方式添加它?
谢谢。我喜欢在ng-conf上提出的想法。这让我想知道如何让我的应用前进。我也使用了WebAPI的ASP.NET MVC模板,但是剥去了MVC登录页面,给我留下了一些提供静态AngularJS内容的东西。我想我现在可以选择回到MVC登录页面或在AngularJS之后执行window.location更改,以便使用Active Profile重建index.HTML。我更喜欢后者。 – Phil
这会起作用,但它可能不值得保留MVC。我已经用不同的解决方案更新了我的答案 – calebboyd