【问题标题】:Role based authentication feed back to user in ASP.NET MVC基于角色的身份验证反馈给 ASP.NET MVC 中的用户
【发布时间】:2010-09-01 18:36:53
【问题描述】:

我正在使用基于角色的身份验证来实现我的 ASP.NET MVC 应用程序中的一些功能

<Authorize(Roles:="Administrator")> _
 Function AdminPage() As ActionResult
    Return View()
  End Function

如果用户没有以管理员身份登录,这会将用户重定向到登录页面,但没有反馈为什么这样做。所以我想显示一条消息,例如“您必须是管理员才能访问此功能。”

我正在寻找一种干净的方法来做到这一点。

提前致谢。

【问题讨论】:

    标签: asp.net-mvc role-based


    【解决方案1】:

    您可以通过编写自定义授权属性轻松实现此目的:

    Public Class CustomAuthorizeAttribute
        Inherits AuthorizeAttribute
        Protected Overrides Sub HandleUnauthorizedRequest(filterContext As AuthorizationContext)
            MyBase.HandleUnauthorizedRequest(filterContext)
            filterContext.Controller.TempData("message") = String.Format("You need to be {0} to access this resource", Me.Roles)
        End Sub
    End Class
    

    然后用这个自定义属性装饰控制器动作:

    <CustomAuthorize(Roles := "Administrator")> _
    Public Function AdminPage() As ActionResult
        Return View()
    End Function
    

    在您的登录视图中的某处:

    <div><%: TempData("message") %></div>
    

    【讨论】:

      猜你喜欢
      • 2016-03-07
      • 2013-11-07
      • 2018-09-06
      • 2023-03-26
      • 2015-04-06
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      相关资源
      最近更新 更多