【发布时间】:2015-04-20 04:29:21
【问题描述】:
所以我想使用 AngularJS 和 .NET Web API 编写一个 SPA。我希望 Angular 处理大部分路由。但是如何防止未经授权的用户(无论身份验证如何)获得某些视图?我想在后端执行此操作,而不涉及 .NET MVC,因为 MVC 返回整个视图,这违背了 SPA 的目的。同样据我了解,Web API 在将视图返回给客户端方面没有任何作用。鉴于这是正确的,当返回请求的视图时,Web API 和 MVC 中的授权在 SPA 中变得无用。我考虑编写一些 OWIN 中间件来检查传入 AJAX 调用的标头,然后确定用户是否有权接收视图。但我不知道从哪里开始。如果编写 OWIN 中间件来处理授权是现实的,我应该从哪里开始?
这些看起来合理吗?还是我只是疯了,我应该让 .NET MVC 处理返回的视图?
跟进:MVC 和 Web API 都有 [Authorize] 装饰,并且正在传递一个令牌。认证没问题。问题在于 Angular。当 Angular 处理路由时,它会从服务器请求一个视图。但是服务器不会进入 .NET MVC 或 Web API,从而绕过 MVC 和 Web API 中的授权。它只是返回视图。有前端授权,但这并不理想。因此,当用户被授权接收该视图时,我需要后端来处理返回的视图。
【问题讨论】:
-
bitoftech.net/2014/06/01/… 5 部分文章,涵盖 AngularJS 令牌身份验证与 ASP.Net 身份、CORS、OAUTH 刷新、外部登录等。
-
我今天早些时候读过那篇文章。它没有解释当 Angular 在使用后端处理路由时如何防止未经授权的视图返回客户端。在此过程中绕过 MVC 和 Web API。我读到我需要将角色注入前端,这是不可能的。
标签: angularjs asp.net-mvc asp.net-web-api owin owin-middleware