首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义AuthorizeAttribute +自定义SiteMapProvider相关?

自定义AuthorizeAttribute +自定义SiteMapProvider相关?
EN

Stack Overflow用户
提问于 2010-01-12 22:08:43
回答 1查看 1.2K关注 0票数 2

对于控制器类,我有一个自定义SiteMapProvider (从数据库中填充)和一个自定义AuthorizeAttribute (验证当前用户角色+针对Role_Page数据库请求的页面)。

我必须实现函数SiteMapProvider.IsAccessibleToUser(context, node)。我还必须实现AuthorizeAttribute.AuthorizeCore(context)

这两个函数之间有什么关系?难道没有办法让'attribute‘SiteMapProvider?

一些代码:

编辑:可能是一个解决方案(在 context中,但是是HttpContextBase__,IsAccessibleToUser()只使用HttpContext作为参数。

代码语言:javascript
复制
If Not SiteMap.Provider.IsAccessibleToUser(context, SiteMap.CurrentNode) Then

当前代码:

代码语言:javascript
复制
Public Class CustomValidateAuthorization : Inherits AuthorizeAttribute
    Public Sub New()

    End Sub

    Protected Overrides Function AuthorizeCore(ByVal httpContext As System.Web.HttpContextBase) As Boolean
        If Not Global.Page.IsAccessibleToUser(httpContext.User) Then
            //Exception or redirect (in exception)?
            // or return false?
        End If

        Return True
    End Function
End Class

Public Class CustomSiteMapProvider : Inherits StaticSiteMapProvider
Public Overrides Function IsAccessibleToUser(ByVal context As System.Web.HttpContext, ByVal node As System.Web.SiteMapNode) As Boolean
    Dim p As New BLL.Page
    p.LoadFromSiteMapNode(node)

    Return p.IsAccessibleToUser(context.User)
End Function
End Class
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-04 13:52:46

我目前两次使用默认的站点地图提供程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2052826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档