【问题标题】:Claims-Based Authorization with Angular.JS and WIF使用 Angular.JS 和 WIF 进行基于声明的授权
【发布时间】:2014-04-20 13:31:39
【问题描述】:

我们有一个使用 ASP.NET MVC 5 构建的应用程序。 对于该应用程序,我们构建了几个与 URL 相关的 HTML 帮助器,它们的作用如下:

假设有一个锚点指向某个 URL,即 /Customer/Edit/5。我们有一个助手会在后台询问 ClaimsAuthorizationManager(它是 Windows Identity Foundation API 的一部分)当前用户是否可以对资源 Customer 执行操作 Edit。如果是,将呈现锚标记的 HTML 标记。否则,什么都不会渲染。

借助这些帮助程序,我们能够拥有基于后台策略的动态网站,这些策略定义 URL 的用户可以根据特定声明访问。

现在我们需要将相同的逻辑推送到基于 AngularJS 的 SPA。

同样,如果不允许用户访问特定的 URL,目标是跳过与 URL 相关的 HTML 的呈现。

我找不到任何关于如何使用 AngularJS 执行这种授权的好资源。

有没有合适的方法来做到这一点,或者我应该使用一些自定义逻辑? 有什么好的参考资料可供我阅读吗?

【问题讨论】:

    标签: asp.net-mvc angularjs authorization wif claims-based-identity


    【解决方案1】:

    Angular 在 RESTful 应用程序中表现出色。在您的情况下,您可以将您的应用设置为以 JSON 格式获取您的声明,并设置您的角度模板以相应地呈现。

    但您也可以在局部视图上使用 MVC 的辅助方法,并将这些局部视图用作 Angular 应用程序的模板。因此,当您的 Angular 应用程序在 foo/bar/baz(通过路由或 ng-include 或指令模板或其他方式)获取 html 模板时,您的 html 模板将返回 MVC 部分视图而不是静态 html 文件。它有点脏,但它可以在紧要关头工作。

    【讨论】:

    • 不完全是我正在寻找的答案,但你确实支持我想到的概念之一,所以我会认为你的答案是有效的 - 除非出现真正的解决方案。
    猜你喜欢
    • 2012-11-07
    • 2021-04-13
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2018-12-28
    相关资源
    最近更新 更多