Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 14:19 Der er 12 kommentarer og
1 løsning

SiteMap og roles i Asp.net 2.0

Jeg har oprettet en sitemap fil med følgende indhold:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/Portal/Document/Document.aspx?id=40" title="Support" description="" roles="*">
    <siteMapNode url="~/Portal/User/User.aspx" title="Profile" description="" roles="Administrator,Partner" />
    <siteMapNode url="~/Portal/Company/ViewCompanies.aspx" title="Companies" description="" roles="Administrator" />
    <siteMapNode url="/Portal/User/ViewUsers.aspx" title="Users" description="" roles="Partner" />
    <siteMapNode url="http://dr.dk" title="DR" description="" roles="Administrator" />
    <siteMapNode url="http://tv2.dk" title="TV2" description="" roles="Partner" />
  </siteMapNode>
</siteMap>


I web.config har jeg tilføjet:
    <siteMap defaultProvider="DefaultSiteMap" enabled="true">
      <providers>
        <add name="DefaultSiteMap"
                description=""
                type="System.Web.XmlSiteMapProvider"
                securityTrimmingEnabled="true"
                siteMapFile="Web.sitemap"/>
      </providers>
    </siteMap>


Anonymous bruger kan kun se Support linket hvilket er fint.
Men Administrator kan se alt undtagen TV2 link og Partner kan se alt undtagen DR link. Hvorfor nu det???

Det ser ud til at serveren bestemmer hvad der skal vises udfra adgangen til aspx filen. Dette er dog ret uheldigt i min situation. Feks. skal alle have adgang til Document.aspx, som viser data fra en sql tabel. Men ikke alle skal have et link i menu til Document.aspx?id=xxx bare fordi de har adgang til Document.aspx....

Er det muligt at løse dette problem?
Avatar billede dr_chaos Nybegynder
05. december 2005 - 15:09 #1
Brugeren som er administrator skal også have rollen "partner".
prøv at fjerne roles="*" fra document.aspx.
Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 15:21 #2
Om administratoren også er partner ændre vel ikke andet end at han også kan se tv2 linket.

at fjerne roles="*" ændre kun at Anonymous ikke kan se linket Support.

Partner kan stadig se flere links end han skal...

Jeg har følgende i web.config:

<authentication mode="Forms"></authentication>

<authorization>
<allow users="?"/>
</authorization>

Kan det være her det går galt?
Avatar billede dr_chaos Nybegynder
05. december 2005 - 15:25 #3
prøv at tilføje location path i web.config filen.
på alle aspx filer.
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:00 #4
min web.config ser ud på denne måde:
<authentication mode="Forms">
            <forms name=".FORMS" loginUrl="~/Login.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseCookies"/>
        </authentication>
location bruges på denne måde:
<location path="login.aspx">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
her er alle brugere tilladt.
Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 16:11 #5
Jeg kan ikke få location til at virke...

Jeg har følgende i web.config filen:
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  <location path="~/Portal/User/ViewUsers.aspx">
    <system.web>
      <authorization>
        <deny roles="Partner"/>
      </authorization>
    </system.web>
  </location>
</configuration>

men partner har stadig adgang til viewusers. Har jeg glemt noget eller er der noget helt andet galt. Projektet er et gammelt asp.net 1.1 projekt, som er konverteret med Visual web developer. Måske er der gået noget galt i konverteringen. User.IsInRole virker dog fint.
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:15 #6
prøv med
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  <location path="/Portal/User/ViewUsers.aspx">
    <system.web>
      <authorization>
        <deny roles="Partner"/>
      </authorization>
    </system.web>
  </location>
</configuration>
Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 16:23 #7
<location path="User/ViewUsers.aspx"> virker partner kan nu ikke se linket, mens administrator kan.

Men så er der stadig et problem med Document.aspx, alle, som er logget på, skal have adgang til filen, men ikke alle skal se link i menu til siden.
Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 16:26 #8
Her er et eksempel:
<siteMapNode url="~/Portal/Document/Document.aspx?id=70" title="Admin link" roles="Administrator" />
<siteMapNode url="~/Portal/Document/Document.aspx?id=71" title="Partner" roles="Partner" />

Admin link skal kun kunne ses af administrator, hvordan kan dette skrives i location?
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:27 #9
tilføj:
<location path="/Portal/Document/Document.aspx?id=40">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:28 #10
<location path="/Portal/Document/Document.aspx?id=70">
        <system.web>
            <authorization>
                <allow roles="Administrator"/>
            </authorization>
        </system.web>
    </location>
Avatar billede casper_skovgaard Nybegynder
05. december 2005 - 16:34 #11
Ok det vil selvfølgelig virke. Det virker bare lidt omstændigt at skulle lave en location for hver menu entry.

Men jeg kan få mit site op at køre og det er det vigtigste indtil videre. Så tusind tak for den hurtige hjælp.

Smid et svar :)
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:35 #12
np :)
det er omstændigt men det virker:)
Avatar billede dr_chaos Nybegynder
05. december 2005 - 16:35 #13
glemte 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