Avatar billede netro Nybegynder
07. januar 2007 - 07:17 Der er 6 kommentarer og
1 løsning

Sitemap - skjul et punkt i menuen

Jeg anvender en custom sitemapprovider til at sammensætte et sitemap af dynamiske sider og et par enkelte statiske.

Sitemappet rummer en offentlig del og en administrationsdel. Her bruger jeg roles til at styre, hvornår administratorsiderne skal vises i menuen.

Der er dog en enkelt side, som jeg gerne (altid!) vil have skjult i menuen. Og det er siden, hvor administratorer kan logge ind. Men samtidig vil jeg gerne have den med i mit sitemap, så den kan bruges af min sitemappath.

Kan jeg lave noget smart, så menuen og sitemappathen stadig kan bruge den samme provider?
Avatar billede brynil Nybegynder
07. januar 2007 - 08:54 #1
Det har jeg også tænkt på, men ikke fået set på før du spurgte. Det ser vist ud til at du kan anvende denne: IsAccessibleToUser.  Prøv at se hér:

http://msdn2.microsoft.com/en-us/library/aa479320.aspx

Jeg har ikke noget at teste på pt. så prøv selv!
Avatar billede netro Nybegynder
07. januar 2007 - 21:20 #2
God artikel, men jeg kan ikke helt se, hvordan jeg kan anvende IsAccessibleToUser i den sammenhæng. Hvordan mener du?
Avatar billede brynil Nybegynder
07. januar 2007 - 21:44 #3
Som han skriver i artiklen:

"In my example, I have created an Editor directory, and specified that this can only be accessed by users with the role Editor. I made this modification in the top-level web.config, rather than defining a separate web.config within the Editor subdirectory.

<location path="Editor" allowOverride="false">
  <system.web>
    <authorization>
      <allow roles="Editor"/>
      <deny users="*,?"/>
    </authorization>
  </system.web>
</location>

Defining access permissions in the top-level web.config is good practice—especially on larger sites where many teams may provide content for various directories. Doing this in one place (and not permitting it to be inadvertently overridden, by specifying allowOverride=false) means that you can be sure that users only see what you want them to see."

Som jeg ser det, er det det samme du spørger om. Men det er jo ikke altid samme måde spørgeren ser det :))
Avatar billede netro Nybegynder
07. januar 2007 - 22:22 #4
Jeg tror, du har misforstået mig lidt så. For den side jeg gerne vil have skjult i menuen skal sådan set ikke afhænge af brugerens rolle. Jeg kan give dig et lille eksempel.

Forestil dig at jeg indtaster url'en www.domain.com/login.aspx. Denne side findes i mit sitemap, men den skal _aldrig_ vises i menuen, uanset rolle.

- Home
- Products
- Support
- Login  <- skal fjernes

Men i min SiteMapPath skal den stadig vises, uanset rolle.

Home -> Login

Sagen er den, at jeg gerne vil benytte samme sitemapprovider til både menu og SiteMapPath. Men i menuen skal Login-siden ikke være synlig.
Avatar billede xguy Nybegynder
08. januar 2007 - 09:49 #5
Noget i den stil her?

Protected Sub mymenu_MenuItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles mymenu.MenuItemDataBound
        If e.Item.NavigateUrl = "/login.aspx" Then
            e.Item.Parent.ChildItems.Remove(e.Item)
        End If
    End Sub
Avatar billede netro Nybegynder
09. januar 2007 - 05:11 #6
Ja, det er perfekt. Mange tak. Læg gerne et svar.
Avatar billede xguy Nybegynder
09. januar 2007 - 13:49 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester