Phi*_*hil 6 security angularjs asp.net-identity
我正在实现一个AngularJS SPA,后端实现为从Visual Studio 2013模板播种的WebAPI.AngularJS执行包括登录在内的所有操作,并且我已成功将其提交到// localhost/token并收到一个令牌,我将其添加到后续请求标头中.但是,我现在想根据用户角色决定要渲染的AngularJS模板,因此我需要角色客户端(我正在按角色保护所有服务器代码,以便做出这些决定)客户端很好.)
为此,我正在考虑添加一些与此类似的东西......
foreach (var claim in context.Identity.Claims.Where(c => c.Type.EndsWith("/role")))
{
    context.AdditionalResponseParameters.Add("role", claim.Value);
}
...到ApplicationOAuthProvider.TokenEndpoint()方法,以便在获取令牌时将角色添加到返回AngularJS代码的JSON中.
我意识到上面的代码目前不适用于更多的那个角色但是我更有兴趣知道这是否是访问角色信息的正确方法以及我是否以正确的方式添加它?
ng-conf 发生在几天前,并提出了一个经过深思熟虑的解决方案。这是视频的链接。他谈论授权大约 10 分钟。
基本上,它涉及向您的应用程序提供 activeUser 服务,然后根据该服务中描述的功能有条件地加载指令。
至于获得角色……
var userRoles = await UserManager.GetRolesAsync(User.Identity.GetUserId());
// or if not async
var userRoles = UserManager.GetRoles(User.Identity.GetUserId());
更新
根据你的结论,我可能会建议这样的事情:
-关联-
它基本上是 ng-conf 中提到的解决方案,但它是在 web-api 控制器内呈现的。完全放弃对 MVC 的需求。
模型包含的内容甚至呈现的 index.cshtml 取决于您用于确定用户是否经过身份验证和授权的逻辑。