Asp.net mvc 自定义属性+;自定义SiteMapProvider相关吗?

Asp.net mvc 自定义属性+;自定义SiteMapProvider相关吗?,asp.net-mvc,vb.net,authorization,sitemap,authorize-attribute,Asp.net Mvc,Vb.net,Authorization,Sitemap,Authorize Attribute,对于控制器类,我有一个自定义的SiteMapProvider(从数据库填充)和一个自定义的AuthorizeAttribute(根据角色页面数据库验证当前用户角色+请求页面) 我必须实现函数SiteMapProvider.IsAccessibleToUser(上下文,节点)。我还必须实现AuthorizeAttribute.AuthorizeCore(上下文) 这两个功能是如何关联的?是否有某种方法可以“属性化”SiteMapProvider? 一些代码: 编辑:这可能是一个解决方案(在Aut

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

我必须实现函数
SiteMapProvider.IsAccessibleToUser(上下文,节点)
。我还必须实现
AuthorizeAttribute.AuthorizeCore(上下文)

这两个功能是如何关联的?是否有某种方法可以“属性化”SiteMapProvider?

一些代码:


编辑:这可能是一个解决方案(在
AuthorizeCore()
内部)?
context
不过是
HttpContextBase
,而
IsAccessibleToUser()
仅将
HttpContext
作为参数


当前代码:

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

我目前使用默认的sitemapprovider两次

我当前使用默认sitemapprovider两次

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