Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从数据库高效加载站点地图?_Asp.net Mvc_Vb.net_Authentication_Authorization_Sitemap - Fatal编程技术网

Asp.net mvc 从数据库高效加载站点地图?

Asp.net mvc 从数据库高效加载站点地图?,asp.net-mvc,vb.net,authentication,authorization,sitemap,Asp.net Mvc,Vb.net,Authentication,Authorization,Sitemap,我有一个自定义的SiteMapProvider,我从数据库中填充它。我还有一个自定义的SiteMapNode,它必须用一个自定义的Page参数来构造 SiteMapProvider.IsAccessibleToUser(上下文,节点)的实现现在是: Public Overrides Function IsAccessibleToUser(context, node) As Boolean Return CType(node, CustomSiteMapNode).Page.IsAcces

我有一个自定义的
SiteMapProvider
,我从数据库中填充它。我还有一个自定义的
SiteMapNode
,它必须用一个自定义的
Page
参数来构造

SiteMapProvider.IsAccessibleToUser(上下文,节点)
的实现现在是:

Public Overrides Function IsAccessibleToUser(context, node) As Boolean
    Return CType(node, CustomSiteMapNode).Page.IsAccessibleToUser(context.User)
End Function
我还有一个自定义的
身份验证类属性

Public Class ValidateAuthorization : Inherits AuthorizeAttribute
    Public Sub New()

    End Sub

    Protected Overrides Function AuthorizeCore(context) As Boolean
        If Not CType(SiteMap.CurrentNode, JrcSiteMapNode).Page.IsAccessibleToUser(httpContext.User) Then
            Throw New ApplicationException()
        End If

        Return True
    End Function
End Class

两个问题:

  • 我是否应该在AuthorizeCore()中返回false以使所有内容都按照默认授权协议工作?(这些是什么?)或者我应该抛出我的异常吗?
  • 如果用户(显然)无法访问请求的页面,则SiteMap.CurrentNode为Null/Nothing(在AuthorizeCore()中)我应该如何更改我的实现?我想保留
    页面
    对象只加载一次的功能,因此我需要将它们存储在某个地方…
    我非常困惑/思维障碍

  • 我目前有2个网站地图。一个启用了安全修剪,另一个未启用安全修剪