我有一个AngularJS
客户端应用程序使用javascript
(而不是coffeescript或打字稿)Oauth2来验证WebAPI 2
应用程序使用最新的Identity 2
。我应用程序中的所有软件都是最新的,基于this example
。我的客户端浏览器目标是IE9及以上。如何在使用AngularJS,WebAPI 2和Oauth 2时将授权信息发回我的客户端应用程序?
请注意,我对上面的示例做了一些小修改,因为我没有对使用转换发送到服务器的所有数据进行urlen编码。相反,我用urlencode只是在下面的身份验证方法:
user.authenticate = function (userName, password, rememberMe, successCallback, errorCallback) {
var config = {
method: 'POST',
url: '/Token',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: 'grant_type=password&username=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password),
};
我与VS2013更新2和服务器上开发,我使用C#,最新的实体框架和SQL Server 2012的
登录我的客户端向WebAPI调用/ Token方法并传递用户标识和密码。 WebAPI然后用一个令牌给我存储的客户端回应。对于每个请求的WebAPI令牌被发回,并验证:
$http.defaults.headers.common.Authorization = 'Bearer ' + user.data.bearerToken;
这个作品非常好,到目前为止,但因为它代表应用程序无法告诉分配有不同角色的用户之间的差异。
某些WebAPI方法只能由具有特定角色的用户执行。我想调整我的前端AngularJS应用程序的菜单,以便只有当用户具有此角色时,才会显示相应的链接。我意识到这不会阻止用户检查HTML和发布,但我不关心这一点,因为我仍然会有方法修饰来限制用户不在角色中执行操作的能力。
有人可以给我的,我怎么能做到这一点使用只是产品上面我在这个问题加上JavaScript的网页令牌何况,如果他们帮助把解决方案的最新套装提到一个例子。从我理解的角色是由索赔处理,但我不明白如何添加这些并将它们发回给客户与令牌。我在互联网上做了大量的研究,但是我还没有找到任何好的例子,因为我认为大多数情况都是非常新的,没有多少人有机会探索SPA如何使用这些最新的软件组件。
当回答这个问题时,请注意,我不是在寻找一个可以告诉社区如何在服务器上设置角色的答案,或者是一个解释在服务器上提供角色检查有多重要的答案。 。我想几乎每个人都知道这一点。我真正认为将使用的是一些非常详细的技术建议,包括示例代码和解释。为了保持答案的重点,如果不满足这种需求的答案不作为建议答案发布,它可能对每个人都有帮助。
预先感谢您。
你能解释一下这个“角色是由索赔来处理吗?声明是角色的替代方法,但如果您仍想使用角色,请添加声明,声明的类型为[ClaimTypes.Role](http://msdn.microsoft.com/zh-cn/library/system.security.claims.claimtypes .role(v = vs.110).aspx) – LostInComputer
我认为这可能有所帮助:http://msdn.microsoft.com/en-us/library/hh545448.aspx –