C# 从STS和AngularJS处获得索赔
我目前使用ADFS作为STS,依赖方使用ASP.NET MVC实现,ASP.NET MVC配置了身份访问工具。依赖方正在使用.NET WSFederationAuthenticationModule,因此我可以使用从登录用户处获取声明C# 从STS和AngularJS处获得索赔,c#,angularjs,asp.net-mvc-4,wif,adfs2.0,C#,Angularjs,Asp.net Mvc 4,Wif,Adfs2.0,我目前使用ADFS作为STS,依赖方使用ASP.NET MVC实现,ASP.NET MVC配置了身份访问工具。依赖方正在使用.NET WSFederationAuthenticationModule,因此我可以使用从登录用户处获取声明 ((System.Security.Claims.ClaimsPrincipal)User).Claims 现在我想切换到angularjs,我问自己这是如何实现的? 首先,我想在服务器端创建angularjs html页面,这样我仍然可以使用WSFederat
((System.Security.Claims.ClaimsPrincipal)User).Claims
现在我想切换到angularjs,我问自己这是如何实现的?
首先,我想在服务器端创建angularjs html页面,这样我仍然可以使用WSFederationAuthenticationModule中的身份验证机制
但我不知道如何让用户声明以安全的方式进入我的angularjs应用程序。我还有一个问题,如何保护当前登录用户的webapi调用。根据用户声明,他被允许进行特定的webapi调用
我读到angularjs和webapi正在使用类似于安全令牌交换的东西。
以前有人这样做过吗?或者你能给我一些如何实现这一点的建议吗
谢谢您可以尝试使用Asp.NET MVC呈现包含托管AngularJS应用程序的页面,并尝试以下操作:
<script>
@{var last = ((System.Security.Claims.ClaimsPrincipal)User).Claims.Last();}
var user = {
@foreach (var claim in ((System.Security.Claims.ClaimsPrincipal)User).Claims)
{
@claim.Type<text>:</text>@claim.Value if(claim!=last){<text>,</text>} @Environment.NewLine;
}
};
</script>
此代码仅用于演示。你应该对声明进行加密。为了保护webapi,您可以使用加密声明的webapi令牌身份验证
这不是最好的解决方案,而是实现你目标的一种可能的方式