2010-01-13 59 views
1

我有一個自定義SiteMapProvider,我從數據庫填充。我也有一個自定義SiteMapNode這是必須與自定義Page參數構造。從數據庫中有效載入網站地圖?

SiteMapProvider.IsAccessibleToUser(context, node)實現現在是:

Public Overrides Function IsAccessibleToUser(context, node) As Boolean 
    Return CType(node, CustomSiteMapNode).Page.IsAccessibleToUser(context.User) 
End Function 

我也有一個自定義authentication class-attribute

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 

兩個問題:

  1. 我應該在AuthorizeCore()中返回false以使所有內容都按照默認授權協議工作嗎? (這些是什麼?)或者我應該拋出我的例外..?
  2. SiteMap.CurrentNode是空/沒有(在AuthorizeCore()),如果被請求的頁面不給用戶(顯然)訪問。 我應該如何更改我的實施?我想保留Page對象只加載一次的功能,所以我需要將它們存儲在某處...我很困惑/心理阻塞。

回答

0

我現在有2個站點地圖。一個是,另一個沒有啓用安全修整。