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

 

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

Authorization μέσω C#

Îåêßíçóå áðü ôï ìÝëïò gspiros. Τελευταία δημοσίευση από το μέλος gspiros στις 03-04-2007, 21:33. Υπάρχουν 10 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  02-04-2007, 04:47 27651

    Authorization μέσω C#

    Μπορώ να ελέγξω μέσω κώδικα C#, αν κάποιος user επιτρέπεται να έχει πρόσβαση σε μία συγκεκριμένη σελίδα?
    Δεν ξέρω αν παίζει και πολύ μεγάλο ρόλο, αλλά δεν χρησιμοποιώ τα membership του .net, διότι έχω φτιάξει δικό μου table για users στην βάση.
    Αν χρησιμοποιούσα τα memberships, αυτή η δουλειά θα ήταν εφικτή?
  •  02-04-2007, 07:49 27654 σε απάντηση της 27651

    Απ: Authorization μέσω C#

    Ναι φυσικά και μπορεί να γίνει μέσω membership και μέσω κώδικα. Ένας τρόπος που θα μπορούσα να σκεφτώ μέσω κώδικα είναι να κρατάς το username του χρήστη στό session. Μετά στην εντολή πχ button_click, για ν ανοιξει η σελίδα, ή την ανοιγεις η κάνεις τον χρήστη redirect...
    for more info...

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

     


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  02-04-2007, 14:40 27667 σε απάντηση της 27654

    Απ: Authorization μέσω C#

    Μπορείς να με βοηθήσεις λίγο παραπάνω? Δεν χρησημοποιώ memberships... Γίνεται λοιπόν αυτό?
    Όντως αποθηκεύω το username σε ένα session, αλλά τα authorizations τα έχω στο web.config. Πως μπορώ να ελέγξω μέσω κώδικα το web.config? Εντολές μόνο για authentication βρήσκω, όχι για authorization...
    Ευχαριστώ
  •  02-04-2007, 14:42 27668 σε απάντηση της 27654

    Απ: Authorization μέσω C#

    Θα συμφωνήσω εκτός από το σημείο για το session. Δεν υπάρχει λόγος να αποθηκεύεις κάτι στο session από τη στιγμή που είναι διαθέσιμο μέσω άλλης μεταβλητής (συγκεκριμένα της Context.User). Κατά τα άλλα το link που έδωσε ο spantos περιέχει ακριβώς αυτό που θέλεις να κάνεις. Δεν αλλάζει και πολλά που χρησιμοποιείς custom authentication. Μέσω της FormsAuthentication.RedirectFromLoginPage που θα δεις στο παράδειγμα δημιουργείται το authentication cookie και ενημερώνεται και η μεταβλητή Context.User. Οπότε μπορείς να χρησιμοποιήσεις το web.config για να ορίσεις δικαίματα σε επίπεδο σελίδας κανονικά.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-04-2007, 15:02 27673 σε απάντηση της 27668

    Απ: Authorization μέσω C#

    Λοιπόν δεν χρησημοποιώ τα loginstatus, loginview κτλ του .net και έχω φτιάξει ένα custom control, το οποίο περιέχει 2 panels.
    Το ένα είναι loginbox και είναι visible όταν ο user δεν είναι authenticated και το άλλο είναι απλά ένα signoutbox το οποίο είναι visible όταν ο user είναι authenticated (αυτά τα 2 panels  φυσικά εναλλάσσονται αναλόγως). Μέχρι εδώ, όλα καλά!

    Το πρόβλημά μου είναι το εξής:
    Δεν θέλω να εναλλάσσονται κατά το authentication, αλλά κατά το authorization, διότι μπορεί να θέλω να κάνω deny ένα user στο web.config του folder users.
    Αν λοιπόν ένας user δεν είναι authorized για τον συγκεκριμένο φάκελο, τότε θέλω να παραμένει στο logon.aspx (αυτό το πετυχαίνω μέσω του web.config του folder users), αλλά επίσης θέλω να συμβαίνει:
    loginbox.visible=true;
    signoutbox.visible=false;

    Αυτά τα ολίγα... Συγνώμη αν δεν είχα γίνει σαφής από την αρχή.
    Καμιά λύση?

    P.S. το Session το χρησιμοποιώ διότι αποθηκεύω όλα τα στοιχεία του user, όχι μόνο το username.

  •  02-04-2007, 19:15 27708 σε απάντηση της 27673

    Απ: Authorization μέσω C#

    Βασικά δεν έχω καταλάβει τι πας να κάνεις. Δεν βλέπω τον λόγο που διαχωρίζεις το authentication από το authoraziation. Για να κάνεις authentication σημαίνει ότι θές να δώσεις κάποια permissions στον user. Αν δεν έχεις λόγο να του δώσεις permissions o μόνος λόγος να κάνεις authentication είναι να κρατήσεις κάποια στοιχεία. Αλλά αυτό που πάς να κάνεις δέν είναι σωστό. Γιατί άν ο user γινει authenicated πώς θα μπορεί να γίνει sing out άν δεν έχει επιλογή, η οποία απ ότι κατάλαβα θα εμφανίζεται αφότου έχει μπεί σε authorized σελίδα; Μπερδέυτηκα λιγο...

    Επίσης κατάλαβα ότι ένα authenticated user o οποίος πάει να μπεί σε σελίδα που δεν έχει permissions θα τον κάνεις singout και θα τον στέλνεις πίσω στην  logon.aspx...Tongue Tied


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  03-04-2007, 15:34 27754 σε απάντηση της 27708

    Απ: Authorization μέσω C#

    Βασικά έχεις δίκιο... Δεν στέκει αυτό που θέλω να κάνω... Έγω το είχα σκεφτεί λάθος...

    Πάντως από περιέργεια, ποιός είναι ο πιο σωστός τρόπος για να κάνεις αποκλεισμό σε ένα χρήστη, από το να μπαίνει στην σελίδα? (τα στοιχεία του βρήσκονται στη βάση δεδομένων).
    Θα πρέπει να βάλω ένα column στην βάση με τύπο bool, όπου θα ελέγχει αν του επιτρέπεται είσοδος ή όχι??? (αυτός ο έλεγχος θα γίνεται κατά το verify του password, ας πούμε).
    Μπορεί να γίνει από το web.config όπως περίπου γίνεται το deny user στο <authorization>???
    Πως?
  •  03-04-2007, 18:14 27772 σε απάντηση της 27754

    Απ: Authorization μέσω C#

    Αυτό που πρέπει να κάνεις είναι να φτιάξεις στην εφαρμογή ένα καινούγιο subfolder. Εκεί θα βάλεις τις σελίδες που είναι restricted για κάποιους users. Στο subfolder θα ρυθμίσεις ανάλογα το web.config του subfolder.
    Δές και αυτό...

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


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  03-04-2007, 18:48 27776 σε απάντηση της 27772

    Απ: Authorization μέσω C#

    Αυτό το έχω κάνει...

    Μάλλον δεν εξηγώ καλά.
    Έστω ότι κάποιος user μπορεί να κάνει logon με σωστό όνομα χρήστη και κωδικό (τα οποία υπάρχουν στην βάση). Μπορώ να κάνω απλά (προσθέτοντας δηλαδή, μόνο μια-δύο γραμμές στο web.config ή μέσω απλού κώδικα C#) "ban" όποιον user και όποτε θέλω?

    Λέω απλά, διότι μπορεί να θέλω μια μέρα να μην επιτρέπω την είσοδο σε κάποιον χρήση, την επομένη να του επιτρέπω, ενώ να απαγορεύω σε κάποιον άλλον. Αν λοιπόν δεν γίνεται απλά αυτό, θα χρειάζεται να αλλάζονται πολλές κώδικα κάθε φορά που θα θέλω να κάνω ban.
    Αν αυτό δεν γίνεται απλά, μην διστάσετε να μου πείτε τον περίπλοκο τρόπο...
    Ευχαριστώ
  •  03-04-2007, 19:42 27781 σε απάντηση της 27776

    Απ: Authorization μέσω C#

    Έτσι απλά! Εδώ βρίσκεται και η δύναμη του Xml + .Net. Μπορείς να χειριστείς την εφαρμογή σου όποτε γουστάρεις χωρίς να χρειάζεσαι να ξανακάνεις compile! Δεδομένου του ότι έχεις περάσει στην FormsAuthentication class το username του χρήστη, η εφαρμογή ξέρει ποιος είναι μέσα και ελέγχει το configuration κάθε φορά που χρειάζεται. Βεβαιώσου όμως ότι την υλοποιέις σωστά! πχ να κάνεις sing out όταν πρέπει. Γενικά μελέτα λιγάκι το πρώτο link που σου έχω δώσει και θα καταλάβεις!


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  03-04-2007, 21:33 27795 σε απάντηση της 27781

    Απ: Authorization μέσω C#

    Σε ευχαριστώ πολύ! Ήταν πολύτιμη η βοήθειά σου!
    Θα επανέλθω με καινούργιες ερωτήσεις πάνω στο θέμα...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems