Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Εμφάνιση επιλογών ανά ρόλο χρήστη

Îåêßíçóå áðü ôï ìÝëïò Karist. Τελευταία δημοσίευση από το μέλος Markos στις 23-12-2008, 14:23. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-12-2008, 11:00 47098

    Εμφάνιση επιλογών ανά ρόλο χρήστη

    Συνημμένα: Webconfig.txt

    Καλημέρα σε όλους και χρόνια πολλά,

    έχω ένα menu control και θέλω μέσα από τους ρόλους του Web.sitemap  να εμφανίζω ή να κρύβω επιλογές στο menu ανάλογα με τον ρόλο που ανήκει ο χρήστης. π.χ.

    <siteMapNode description="Καταχωρήσεις" title="Καταχωρήσεις" roles ="Administrators, Purchases" >
    ...... </siteMapNode>

    <siteMapNode description ="Διαχείριση" title ="Διαχείριση" roles ="Administrators">
    ..... </siteMapNode>

    Δηλαδή οι χρήστες που ανήκουν σε ρόλο "Administrators" να βλέπουν και τις δυο επιλογές, "Καταχωρήσεις & Διαχείριση", ενώ στους χρήστες με ρόλο "Purchases" να τους εμφανίζει μόνο την επιλογή "Καταχωρήσεις".

    Στέλνω συνημμένα και τις ρυθμίσεις στο web.config

    Αυτά σε Studio 2008 sp1 δεν δουλεύουν. Ψάχνω να βρώ τι κάνω λάθος αλλά δεν τα έχω καταφέρει.

    Σε Studio 2005 "παίζει" χωρίς πρόβλημα. Επίσης να συμπληρώσω ότι η aspnetdb βάση, είναι "φτιαγμένη" από studio 2005 και "φιλοξενείται" σε κεντρικό sql 2005 server.

    Ευχαριστώ πολύ.

  •  23-12-2008, 11:44 47100 σε απάντηση της 47098

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Καλημέρα και χρόνια πολλά.

    Ομολογώ ότι δεν έχω και μεγάλη εμπειρία από Web Forms. Ωστόσο, σε παρόμοια κατάσταση, για να δώσω πρόσβαση σε διαφορετικό περιεχόμενο, χρησιμοποίησα δύο sitemaps και δύο Master Pages. Φαντάζομαι ότι δε ζητάς μόνο "οπτική" διαφοροποίηση, αλλά και λειτουργική. Δηλαδή, ο administrator να έχει και άλλες επιλογές στη διάθεσή του. Λες ότι σε VS2005 σου παίζει χωρίς πρόβλημα. Αν είναι έτσι, κάνε ένα post με το πως το κατάφερες γιατί ενδιαφέρει κι εμένα.

    Για να προσθέσεις sitemaps στο web config κάνεις εξής προσθήκες στο system.web node:

    <siteMap enabled="true">
        <providers>
            <add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="SMap1.sitemap"/>
            <add name="SiteMap2" type="System.Web.XmlSiteMapProvider" siteMapFile="SMap2.sitemap"/>
        </providers>
    </siteMap>

    Αν υπάρχει πιο καθαρή λύση ας την post-άρει κάποιος.


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  23-12-2008, 12:16 47101 σε απάντηση της 47098

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Sorry για το δεύτερο απανωτό post, αλλά χρειάζεται ν' ανοίγουμε που και που κανένα βιβλίο (για μένα το λέω)! Τα siteMapNodes έχουν ένα ακόμα attribute, το securityTrimmingEnabled. Σ΄αυτό βάλε την τιμή true για να ενεργοποιήσεις την πρόσβαση βάσει των roles.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  23-12-2008, 12:25 47102 σε απάντηση της 47101

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Γεια σου Μάρκο , ευχαριστώ για το ενδιαφέρον και τις απαντήσεις σου.

    Με τι ίδιες ακριβώς ρυθμίσεις ( web.config & sitemapnodes ) παίζει στο 2005 ( copy, paste το έκανα )

    Το SecurityTtrimmingEnabled όταν το έχω, βγάζει μηνυμα λάθους :

    Unrecognized attribute 'securityTrimmingEnabled'. Note that attribute names are case-sensitive.

    Δεν μπορώ να καταλάβω γιατί, το ψάχνω.

    Ευαχαριστώ πολύ.

  •  23-12-2008, 12:39 47105 σε απάντηση της 47101

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Μάρκο γεια σου και πάλι,

    πολύ σωστά το είπες για το securityTrimmingEnabled. Θέλει όμως να βάλεις τα  παρακάτω στο web.config μέσα στο <system.web>:

    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
    <
    providers>
    <
    add name="XmlSiteMapProvider"
    description="Default SiteMap provider."
    type="System.Web.XmlSiteMapProvider"
    siteMapFile="Web.sitemap"
    securityTrimmingEnabled="true" />
    </
    providers>
    </
    siteMap>

    To είχα περάσει στο 2005 αλλά δεν το θυμόμουνα.

    Τώρα "παίζει" και στο 2008 χωρίς πρόβλημα.

    Καλές γιορτές σε όλους.

  •  23-12-2008, 12:44 47106 σε απάντηση της 47102

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Έβαλα το error στο Google και μου εμφάνισε κάποια ενδιαφέροντα αποτελέσματα. Το MSDN αναφέρει πως η ενεργοποίηση του attribute πρέπει να γίνει στο Web.config (το ίδιο και το βιβλίο). Παρόλ' αυτά, τόσο στο VS2005 όσο και στο VS2008 το intellisense δεν εμφανίζει το attribute όταν είμαι στο αντίστοιχο τμήμα του Web.config. Αντίθετα, μου το εμφανίζει στα siteMapNodes. Το ίδιο πρόβλημα φαίνεται ν' αντιμετωπίζει κι αυτός ο κύριος. Δε ξέρω αν το πρόβλημα είναι του intellisense ή της δικής μου εγκατάστασης.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  23-12-2008, 14:01 47112 σε απάντηση της 47106

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Ο οποίος λέει επίσης ότι το πρόβλημα είναι στο Intellisense και κανονικά το attribute ενεργοποιείται στον provider, όπως αναφέρει και το MSDN.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-12-2008, 14:23 47116 σε απάντηση της 47112

    Απ: Εμφάνιση επιλογών ανά ρόλο χρήστη

    Το post του, όμως, είναι παλιό (Νοέμβριος 2007). Έχω βάλει όλες τις αναβαθμίσεις κι εντούτοις έπεσα πάνω στο bug. Επίσης, η ίδια συμπεριφορά εμφανίζεται και στο VS2005. Γι' αυτό αναρωτήθηκα μήπως φταίει η δική μου εγκατάσταση.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems