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

 

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

Form authedication

Îåêßíçóå áðü ôï ìÝëïò Panos.C#. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 28-01-2011, 09:49. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-01-2011, 07:23 62740

    Form authedication

    Καλημέρα,

    γίνεται θα χρησιμοποιείσω την tag property ενός textbox για να κάνω user authedications με έναν πίνακα users σε Sql που έχω.

    γραφώ για παράδειγμα:

    if (textbox1.text == textbox1.tag) αφου έχω κάνει bind στην tag property. Δεν μου βγάζει compile error αλλά απλά δεν παίζει.

     


    breadcrumbs.gr
  •  28-01-2011, 08:36 62741 σε απάντηση της 62740

    Απ: Form authedication

    Τι ακριβώς θες να κάνεις; Μου μυρίζεται ότι δεν είναι ο σωστός τρόπος όπως και να έχει...

     


    Vir prudens non contra ventum mingit
  •  28-01-2011, 08:47 62742 σε απάντηση της 62741

    Απ: Form authedication

    Έχω κάνει μια φόρμας είσοδου στη εφαρμογή και κάνω κάποιες δοκιμές.

    έχω 2 textbox txtuser και txtpassword

    πάω στο tag property των 2 textbox και τα κάνω bind .

    και στην συνέχεια κάνω το authedication.

    Αυτό που προσπαθώ να δοκιμάσω είναι αν μπορώ να χρησιμοποιήσω το γραφικό περιβάλλον του Visual studio για να φτιάξω dataset και tableadapror και datatable ώστε να γράψω λιγότερο κώδικα.


    breadcrumbs.gr
  •  28-01-2011, 08:51 62743 σε απάντηση της 62741

    Απ: Form authedication

    Να συναπορήσω κι εγώ για την ερώτηση. Το tag και το authentication δεν έχουν καμμία σχέση μεταξύ τους. Ποιά είναι η πραγματική ερώτηση? Τί προσπαθείς να κάνεις?

    Μία εικασία είναι ότι προσπαθείς να κρύψεις πίνακες ή πεδία ανάλογα με τα permissions που έχει ο χρήστης. Αυτό το πράγμα όμως ΔΕΝ λέγεται authentication αλλά authorization και δεν πρόκειται να βγάλεις άκρη για το ένα, ψάχνοντας για το άλλο.

    Αν προσπαθείς να περιορίσεις την πρόσβαση σε πίνακες ή πεδία με permissions, μπορείς απλά να βάλεις   permissions στους πίνακες και τις στήλες με την GRANT . Από τη στιγμή που συνδέεσαι με windows authentication στη βάση, ο SQL Server ξέρει ποιός είναι ο χρήστης. Το ίδιο συμβαίνει και αν συνδέεσαι χρησιμοποιώντας SQL authentication (username/passsword) και φροντίζεις να δίνεις τα στοιχεία που δίνει ο χρήστης αντί να χρησιμοποιείς κάποια καρφωτά. Το μόνο θέμα είναι ότι .... θα σκάσουν τα query σου αν προσπαθούν να διαβάσουν από πίνακα χωρίς permissions.

    Μία άλλη λύση είναι να έχεις διαφορετικές φόρμες ανά ρόλο και να εμφανίζεις στο χρήστη την φόρμα που αντιστοιχεί στον ρόλο του, αντί για μία γενική. Πρωτού πεις "μα θα φτιάχνω μία φόρμα για κάθε ρόλο!", η δουλειά είναι ελάχιστη αν έχεις φροντίσει να ξεχωρίσεις τη φόρμα από τη business λογική. Αν μάλιστα μιλάμε για WPF ή Silverlight, ο διαχωρισμός αυτός έρχεται out -of-the-box

    Άλλη μία λύση είναι να κρατάς κάπου ποιός ρόλος έχει πρόσβαση σε ποιό πεδίο. Υποθέτω ότι αυτό θέλεις να πετύχεις με το tag, αν και έτσι απλά κάνεις hard-code τους ρόλους την ώρα του compile. Καλύτερη λύση είναι να κρατάς ρόλους και πεδία (ΟΧΙ control names) σε κάποιο πίνακα τον οποίο θα φορτώνεις πριν εμφανιστούν οι φόρμες σου. Μετά, κατά το φόρτωμα, κρύβεις όσα πεδία δεν έχουν το κατάλληλο permission.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  28-01-2011, 08:54 62744 σε απάντηση της 62742

    Απ: Form authedication

    Γιατί να κάνεις bind στα tag? Δεν χρησιμοποιείς το περιεχόμενο των textboxes? Και πως κάνεις το authentication?

    Και γιατί χρησιμοποιείς φόρμα σε desktop εφαρμογή αντί να αφήσεις την εφαρμογή να χρησιμοποιήσει το Windows account (κάτι που κάνει by default ?)

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  28-01-2011, 09:15 62746 σε απάντηση της 62744

    Απ: Form authedication

    Οχι παιδιά να σας εξηγήσω. Καταρχήν έχω φτιάξει μια μικρή εμπορική εφαρμογή. Έχω ένα πίνακα με χρήστες στον SQL για να επιτρέπω να μπαίνουν στην εφαρμογή μου.  Με την εκίνηση της εφαρμογής ανοίγει μια φόρμα όπου ο χρήστης πληκτρολογεί το user name το password επιλέγει ημερομηνία εργασίας και επιλέγει και εταιρία εργασίας από ένα drop menu.

    Αν δημιουργήσω ένα datareader και κάνω ένα απλό select από τον SQL έχω το επιθυμητό αποτέλεσμα.

    Αυτό που δοκιμάζω και ρωτάω από εσάς αν είναι σωστό ή αν είναι εφικτό είναι το εξής:

    Αν χρησιμοποιήσω το γραφικό περιβάλλον του Visual studio για να φτιάξω Dataset TableAdaptor kai DataTable και κάνω Fill.

    Αν κάνω bind στο tag property των 2 textbox τα αντίστοιχα πεδία του binding

    μπορώ γράφοντας το εξής

    if(txtusername.tex == txt.username.tag)

    {

    Messagebox.show("Welcome to my App");
    }

    Νομίζω ότι τώρα σας έδωσα να καταλάβεται τι θέλω να δοκιμάσω

    στην ουσία θέλω να δω αν μπορώ να περιόρισω το γραψιμο του κώδικα και να στηριχθώ στα Wizard του Visual Studio.

     

     

     


    breadcrumbs.gr
  •  28-01-2011, 09:49 62748 σε απάντηση της 62746

    Απ: Form authedication

    Όχι.

    Τί δουλειά έχει το tag σε όλα αυτά? Από τη στιγμή που έχει γίνει το authentication, τί το χρειάζεσαι το tag? Υποψιάζομαι ότι κάτι έχεις μπλέξει με το authentication. Πως ακριβώς το κάνεις? Αν κάνεις απλά ένα query που σου επιστρέφει αν υπάρχει ο συνδυασμός username/password (hashed εννοείται!) στη βάση, έχεις τελειώσει. Δεν υπάρχει λόγος να φορτώσεις οτιδήποτε στο tag.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems