zoukankan      html  css  js  c++  java
  • ASP.NET Core--基于授权的视图

    翻译如下:

      开发人员通常希望基于当前用户身份显示,隐藏或以其他方式修改UI。 您可以通过依赖注入访问MVC视图中的授权服务。 将授权服务注入Razor视图,请使用@inject指令,例如:

    @inject IAuthorizationService AuthorizationService
    

      如果要在每个视图中都有授权服务,那么将@inject指令放入Views目录中的_ViewImports.cshtml文件中。 有关将依赖注入到视图中的更多信息,请参阅将依赖注入到视图中。

      注入授权服务后,您可以通过调用AuthorizeAsync方法使用它,与在基于资源的授权检查完全相同。

    @if (await AuthorizationService.AuthorizeAsync(User, "PolicyName"))
    {
        <p>This paragraph is displayed because you fulfilled PolicyName.</p>
    }
    

      在某些情况下,资源将是您的视图模型,您可以以与在基于资源的授权期间检查完全相同的方式调用AuthorizeAsync;

    @if (await AuthorizationService.AuthorizeAsync(User, Model, Operations.Edit))
    {
        <p><a class="btn btn-default" role="button"
            href="@Url.Action("Edit", "Document", new { id = Model.Id })">Edit</a></p>
    }
    

      如上你可以看到模型作为资源授权时应该考虑的传递。

      警告:

      不要依赖显示或隐藏UI的某些部分作为您唯一的授权方法。 隐藏UI元素并不意味着用户不能访问它。 您还必须在控制器代码中授权用户。

     
  • 相关阅读:
    转载:AAC编解码概述
    转载:ADTS header
    wcf寄宿在iis上的跨域访问问题【不止是添加跨域文件】
    转 http 分析工具
    时间管理1
    关于silverlight和Wcf分布式部署注意问题(收藏夹)
    c#修改xml文件
    关于在线编辑的异常
    创业文摘5--从程序员转向企业家的10个建议
    silverlight 后台代码生成gridview
  • 原文地址:https://www.cnblogs.com/duyao/p/5980091.html
Copyright © 2011-2022 走看看