zvyk AuthorizeAttribute + zakázku SiteMapProvider příbuzní?

hlasů
2

Mám zvyk SiteMapProvider(naplněn z databáze) a vlastní AuthorizeAttribute(ověří aktuální uživatelské role + požadovanou stránku proti databázi Role_Page) na výuku regulátorů.

Musím zavést funkci SiteMapProvider.IsAccessibleToUser(context, node). Musím také realizovat AuthorizeAttribute.AuthorizeCore(context).

Jak jsou tyto dvě funkce spojené? Není tam nějaký způsob, jak ‚ atribut jen‘ SiteMapProvider?

Některé kód:


edit: Může to být roztok (uvnitř AuthorizeCore())? contextnicméně je HttpContextBase, a IsAccessibleToUser()trvá pouze HttpContextjako parametr.

If Not SiteMap.Provider.IsAccessibleToUser(context, SiteMap.CurrentNode) Then

Současný kód:

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
Položena 12/01/2010 v 23:08
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

I v současné době používají výchozí sitemapprovider dvakrát.

Odpovězeno 04/02/2010 v 14:52
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more