【发布时间】:2017-02-17 12:29:26
【问题描述】:
我实现了 AspNetCore.Authorization 并用[Authorize] 修饰了控制器类。这有效,如果我从浏览器调用控制器。然而,视图组件可以访问数据:
查看:
@foreach (Category category in Model) {
<a class="btn btn-block
asp-action="Index"
asp-controller="Note"
asp-route-categoryid=@category.CategoryID
asp-route-page="1">
@category.Name
</a>
这导致视图组件被来自@category.Name 的数据填充,实际上浏览器的地址栏无法访问。
视图组件:
[Authorize]
public class NavigationMenuViewComponent : ViewComponent
{
private INoteRepository _Repository;
public NavigationMenuViewComponent(INoteRepository repository)
{
_Repository = repository;
}
public IViewComponentResult Invoke()
{
ViewBag.SelectedCategory = RouteData?.Values["category"];
return View(_Repository.Categories
.OrderBy(x => x.Name));
}
}
其实我想,Authorize 属性如果没有实际登录,就会拒绝来自视图组件的调用。我怎样才能得到这样的行为?
【问题讨论】:
标签: c# asp.net-core asp.net-core-viewcomponent