只有当用户以admin角色登录时才显示管理面板按钮

本文关键字:显示 管理 按钮 登录 用户 角色 admin | 更新日期: 2023-09-27 18:16:45

基本上我的问题是基于这里的这个问题:

只显示已登录用户的菜单项

他们解决上一道问题的方法是一种拙劣的方法。我读了一些关于这个问题,发现你必须创建自定义的HTML Helper,它将根据用户角色显示或隐藏按钮。

那么在View中它看起来会是这样的

 @HTML.MyCustomHelperWhichShowButton("ButtonText"); 

但是我应该如何实现这样一个助手呢?

只有当用户以admin角色登录时才显示管理面板按钮

但是我应该如何实现这样一个助手呢?

通过为HtmlHelper类编写一个扩展方法:

public static class HtmlExtensions
{
    public static IHtmlString MyCustomHelperWhichShowButton(this HtmlHelper html, string text)
    {
        var isAuthnticated = html.ViewContext.HttpContext.User.Identity.IsAuthenticated;
        if (isAuthnticated)
        {
            return html.ActionLink(text, "MyListings", "List");
        }
        return new HtmlString(string.Empty);
    }
}
通过将您定义该类的名称空间添加到~/Views/web.config文件的<namespaces>部分,这将使该帮助器在所有视图中都具有作用域
相关文章: