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

 

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

CreateUserWizard Control

Îåêßíçóå áðü ôï ìÝëïò YiannisF. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 01-06-2007, 13:19. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-06-2007, 12:16 32438

    CreateUserWizard Control

    Καλησπέρα,

    Μήπως ξέρει κανείς πώς μπορώ να απενεργοποιήσω το functionality του secret question/answer από το control CreateUserWizard; Αν απλά διαγράψω τα σχετικά πεδία από το control τότε μόλις το τρέξω σκάει. Επίσης στα properties δεν υπάρχει κάποια σχετική επιλογή true/false. Μήπως είναι κάτι στο web.config;

    Ευχαριστώ

    .::yf::.
    Δημοσίευση στην κατηγορία:
  •  01-06-2007, 12:23 32440 σε απάντηση της 32438

    Απ: CreateUserWizard Control

    Καταρχήν, γιατί να κρύψεις το secret question? Είναι πολύ χρήσιμο, στην περίπτωση που κάποιος χρήστης ξεχάσει το password του. Μήπως θέλεις να πετύχεις κάτι διαφορετικό, π.χ. να μην μπορεί ο χρήστης να κάνει reset το password του?

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  01-06-2007, 12:45 32441 σε απάντηση της 32438

    Απ: CreateUserWizard Control

    Δεν υπάρχει απευθείας τρόπος να το καταργήσεις, εκτός και αν θέσεις Visible="false" στα δύο αυτά controls αλλά δεν ξέρω μήπως τα πεδία δεν είναι nullable.
    Μπορείς να κάνεις πλήρες customization στο CreateUserWizard όπως περιγράφεται στο σχετικό άρθρο του MSDN.

    Νατάσα Μανουσοπούλου
  •  01-06-2007, 12:56 32442 σε απάντηση της 32440

    Απ: CreateUserWizard Control

    Η κλάση MembershipProvider έχει το property RequiresQuestionAndAnswer το οποίο ρυθμίζει αν o provider απαιτεί τη χρήστη Secret Q & A.  Αν κοιτάξεις το documentation π.χ. του SqlMemberShipProvider.RequiresQuestionAndAnswer θα δεις ότι ρυθμίζεται από το web.config:
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
    <providers>
    <add name="SqlProvider"
    type="System.Web.Security.SqlMembershipProvider"
    connectionStringName="SqlServices"
    enablePasswordRetrieval="false"
    enablePasswordReset="true"
    requiresQuestionAndAnswer="true"
    passwordFormat="Hashed"
    applicationName="MyApplication" />
    </providers>
    </membership>

    Το ίδιο schema χρησιμοποιείς και για τον ActiveDirectory provider. Τώρα, γιατί το documentation του MembershipProvider δεν τα περιγράφει αυτά ... ίσως επειδή ο κάθε provider μπορεί να έχει τα δικά του properties οπότε δεν υπάρχει σταθερό σχήμα.

    Με αυτό τον τρόπο απενεργοποιείς τη χρήση των Secret Question, αλλά δεν ξέρω αν θα κρυφτούν και από το Wizard. Άλλο ο Membership Provider και άλλο τα control που επικοινωνούν μαζί του. Αν δεν κρύβονται, θα βρεις στο "How to: Customize the ASP.NET CreateUserWizard Control" ένα παράδειγμα πως να τροποποιήσεις το CreateUserWizard control. Το CreateUserWizard control επιτρέπει τη χρήση templates για την κάθε σελίδα του, οπότε μπορείς να ορίσεις εσύ ένα template στο οποίο τα Secret Q/A πεδία θα είναι κρυμμένα.

    Αν αυτό που ψάχνεις είναι να αλλάξεις την εμφάνιση των Secret Q/A controls, μπορείς πάλι να το κάνεις με τα templates.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  01-06-2007, 13:00 32443 σε απάντηση της 32441

    Απ: CreateUserWizard Control

    Τα πεδία αυτά είναι nullable και γι' αυτό θεωρώ πως λογικά θα έπρεπε να μπορείς να απενεργοποιήσεις τη λειτουργικότητα αυτή.

    Παναγιώτη, οι λόγοι που θέλω να το απενεργοποίησω είναι ότι πιστεύω ότι η ανάκτηση κωδικού μπορεί να επιτευχθεί με αποστολή του στο email που είχε δηλώσει κατά το registration ο χρήστης, ή όπως ανέφερες κι εσύ με reset. Και οι δύο αυτοί τρόποι είναι θεωρώ περισσότερο user friendly (ο χρήστης πρέπει να θυμάται και άλλα στοιχεία εκτός από το password και τι θα γίνει αν τα ξεχάσει όλα;;) και πιο ασφαλείς καθότι δεν είναι και απίθανο να μαντέψει κανείς το secret answer (ιδίως αν τα secret questions είναι προκαθορισμένα και ο χρήστης διαλέγει αναγκαστικά ένα από αυτά). Έχω πετύχει νομίζω και άρθρα που τεκμηριώνουν τα παραπάνω.

    Θα τσεκάρω το άρθρο στο MSDN και θα επανέλθω.

    Ευχαριστώ για τις άμεσες απαντήσεις.

    .::yf::.
  •  01-06-2007, 13:03 32446 σε απάντηση της 32441

    Απ: CreateUserWizard Control

    Είμαστε φοβεροί, έ? Πριν προλάβει να απαντήσει ο ένας, απαντάει ο άλλος!

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  01-06-2007, 13:06 32447 σε απάντηση της 32442

    Απ: CreateUserWizard Control

    Μάλιστα, τελικά δε χρειάστηκε να κοιτάξω τίποτα!

    Thanks Παναγιώτη!

    .::yf::.
  •  01-06-2007, 13:19 32451 σε απάντηση της 32443

    Απ: CreateUserWizard Control

    Δεν υπάρχει κανένα πρόβλημα τότε, γιατί το recovery ακριβώς έτσι δουλεύει. Είναι άλλο ένα από τα properties που ρυθμίζεις στον Membership Provider. Δες το "Configuring an ASP.NET Application to Use Membership" και το documentation του PasswordRecovery control. Ανάλογα με τις ρυθμίσεις, μπορεί να σταλεί στο χρήστη το παλιό password ή ένα νέο. Το Secret Question χρησιμοποιείται για να ασφαλίσει το recovery, όχι για να μπει κάποιος αν δεν έχει password.

    Ίσως θα πρέπει να κοιτάξεις από την αρχή πως δουλεύει το membership στο ASP.NET γιατί μάλλον καλύπτει ήδη τα πράγματα που ζητάς. Κοίτα το κεφάλαιο "Introduction to Membership"

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