ASP.NET MVC中怎么显示选单项目的功能

发布时间:2021-12-06 11:52:54 作者:iii
来源:亿速云 阅读:124

本篇内容介绍了“ASP.NET MVC中怎么显示选单项目的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

问题情景

开发人员在系统内套用CLK.AspNet.Identity后,就可以依照使用者的权限,来限制用户能够使用那些功能。当用户透过浏览器进入权限的功能页面时,就会收到HTTP的403状态代码,用来告知使用者没有权限进入该页面。

以提供更好的使用者体验角度来说,用户点击选单项目后,得到没有权限进入该页面的响应。这样的操作流程,很容易让用户失去耐心。为了提供更好的用户体验,系统应该依用户的权限来显示选单项目,只显示有权限可以进入使用的选单项目,用以减少用户操作错误的机会。

解决方案

在套用CLK.AspNet.Identity的系统里,可以使用HasPermission这个扩充方法,来提供依权限显示选单项目的功能。使用方法如下:

  1. 在系统里加入一个新的ProductController、ProductViews,并且依照下列范例程序,加入Method及对应的权限:ProductAddAccess、ProductRemoveAccess。

    public class ProductController : Controller
    {
        [RBACAuthorize(Permission = "ProductAddAccess")]
        public ActionResult Add()
        {
            ViewBag.Message = "Your product add page."; 
            return View();
        }
    
        [RBACAuthorize(Permission = "ProductRemoveAccess")]
        public ActionResult Remove()
        {
            ViewBag.Message = "Your product remove page.";  
            return View();
        }
    }
  2. 编辑Views\Shared_Layout.cshtml,并且依照下列范例,使用HasPermission这个扩充方法,来依照用户的权限显示选单项目。

    <div class="col-md-12" >
        <div class="container">
            @if (User.HasPermission("ProductAddAccess"))
            { 
                @Html.ActionLink("Product add", "Add", "Product", null, new { @class = "btn btn-primary" }) 
            }
    
            @if (User.HasPermission("ProductRemoveAccess"))
            { 
                @Html.ActionLink("Product remove", "Remove", "Product", null, new { @class = "btn btn-primary" }) 
            }
        </div>
    </div>
  3. 完成上述程序程序开发工作之后,还需要进入系统,设定用户权力。在下面这个范例中,示范使用Permission管理页面,将权限开放给Admin群组使用。

  1. 使用预设的管理账号登入(ID:admin@example.com, PW:admin)登入后,可以看到因为admin@example.com属于Admin群组、而Admin群组拥有ProductAddAccess权限,所以系统选单中可以看到Product add这个选单项目。

  1. 更换使用预设的访客账号登入(ID:guest@example.com, PW:guest)登入后,可以看到因为guest@example.com属于Guest群组、而Guest群组没有ProductAddAccess权限,所以系统选单中看不到Product add这个选单项目。

“ASP.NET MVC中怎么显示选单项目的功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 七天学会ASP.NET MVC(七)——创建单页应用
  2. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mvc asp.net

上一篇:如何进行一次年轻代GC长暂停问题的解决与思考

下一篇:怎么在asp.net core的中间件中返回具体的页面

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》