相关疑难解决方法(0)

在.NET Core 1.0 MVC中的视图中使用授权策略的任何方法?

我知道在控制器中,您可以[Authorize("policyName")]毫无问题地编写,但有没有办法在视图中使用策略?我不想User.IsInRole(...)每次都想要授权一些HTML.

编辑:

这是一些代码

Startup.cs - 政策声明

    services.AddAuthorization(options =>
    {
        options.AddPolicy("testPolicy", policy =>
        {
            policy.RequireAuthenticatedUser()
                  .RequireRole("RoleOne", "RoleTwo", "RoleThree")
                  .RequireClaim(ClaimTypes.Email);
        });
    });
Run Code Online (Sandbox Code Playgroud)

管理控制器

[Authorize("testPolicy")]
public class AdminController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

导航HTML

<div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li><a asp-controller="Home" asp-action="Index">Home</a></li> 

                        <!-- I want to implement my policy here. -->
                        @if (User.IsInRole("..."))
                        {
                            <li><a asp-controller="Admin" asp-action="Index">Admin</a></li>
                        }
                    </ul>
                    @await Html.PartialAsync("_LoginPartial")
                </div>
            </div>
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc authorization asp.net-core-mvc asp.net-core

17
推荐指数
2
解决办法
6128
查看次数