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

 

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

Cookie άνευ γέμισης.

Îåêßíçóå áðü ôï ìÝëïò epp1123. Τελευταία δημοσίευση από το μέλος epp1123 στις 26-08-2008, 12:21. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-08-2008, 15:10 44007

    Cookie άνευ γέμισης.

    Καλησπέρα. Τι κάνετε;;; Λοιπόν έχουμε και λέμε:

    Για να κάνουν οι χρήστες login χρησιμοποιώ τα εξής:

    1. Το Login control, αλλά του έχω κάνει Convert To Template, γιατί ήθελα να κάνω κάποιες αισθητικές παρεμβάσει
    2. Ένα custom membership provider, που τον έχω φτιάξει εγώ
    3. Το web config αρχείο.

    Το πρόβλημα τώρα είναι ότι στο cookie θέλω να περνάω το όνομα χρήστη, εκτός από τα timeout και τα σχετικά.  Και δεν έχω βρει πως να το κάνω. Μήπως ξέχασα κάτι στο web.config;;

    Μήπως επειδή είναι custom ο provider, πρέπει να γράψω εγώ τον κώδικα για το cookie; Στο msdn βρήκα κώδικα για να φτιάχνεις cookies, αλλά λέω μήπως μπορεί να γίνει χωρίς να χρειαστεί η συγγραφή

    Το webconfig αρχείο έχει ως εξής:

    1
    2
    3
    <authentication mode="Forms">
    <forms name=".CABAUTH" loginUrl="~/Pages/StartPage.aspx" timeout="20" cookieless="UseCookies" slidingExpiration="true" protection="All"/>
    </authentication>

    Ευχαριστώ προκαταβολικώς
  •  10-08-2008, 00:58 44029 σε απάντηση της 44007

    Απ: Cookie άνευ γέμισης.

    Δεν θέλω να σε αποκαρδιώσω, αλλά παρακολουθώντας την όλη προσπάθειά σου να στήσεις τον custom membership provider τον τελευταίο καιρό, βλέπω ότι προσωπικά δεν μπορώ να βοηθήσω γιατί έχει προχωρήσει σε μεγάλο βάθος.

    Αισθάνομαι δε, ότι αν και σωστά διατυπωμένα και δικαιολογημένα τα ερωτήματά σου, φαίνεται ότι δεν έχεις χρησιμοποιήσει προηγουμένως τον default authentication provider που έρχεται μαζί με το ASP.NET. Γιατί σε μερικές ερωτήσεις καταλαβαίνω ότι δεν βρίσκεις πράγματα, γιατί δεν ξέρεις που να τα ψάξεις.

    Πχ, όταν έχουμε τον default provider, δεν ενδιαφερόμαστε τι γράφεται στα cookies, ή αν γράφονται cookies στον browser. Απλά χρησιμοποιούμε το Membership.GetUser για να βρούμε το χρήστη που είναι συνδεδεμένος εκείνη τη στιγμή, και ανάλογα μπορούμε να διαβάσουμε και κάποια έξτρα δεδομένα για το λογαριασμό από το Profile του.

    Λογικά, αφού μπήκες στον κόπο και έφτιαξες τον Custom Authentication Provider, θα πρέπει να μπορείς να "απολαμβάνεις" αυτών των αυτοματισμών του Membership. Δεν θα πρέπει να ενδιαφέρεσαι με το θα γραφτεί μέσα στα cookies, απλά θα διάβαζες το λογαριασμό...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  26-08-2008, 12:21 44293 σε απάντηση της 44029

    Απ: Cookie άνευ γέμισης.

    Καλημέρα, συγνώμη για τη καθυστέρηση αλλά τα τρεξίματα δε τελειώνουν ποτέ. Λοιπόν χρησιμοποίησα το Membership, αφού πρώτα διάβασα κάποια πράγματα για να καταλάβω τις διαφορές με τον Provider, και τελικά...παίζει. Μέσα στο Page_Init έγραψα
    1
    2
    3
            Dim returnValue As MembershipUser

    returnValue = Membership.GetUser()

    Όλα καλά και όλα ωραία. Ωστόσο έχω μία απορία. Μέσα στον membership provider που έφτιαξα, και συγκεκριμένα στη function  "GetUser(ByVal username As String, ByVal userIsOnline As Boolean) As MembershipUser", έγραψα τον εξής κώδικα:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                Dim userID As Object = Nothing
    Dim email As String = username
    Dim passwordQuestion As String = String.Empty ' Δεν χρησιμοποιείται
    Dim comment As String = String.Empty 'Δεν χρησιμοποιείται
    Dim isApproved As Boolean = True
    Dim isLockedOut As Boolean = False
    Dim creationDate As Date
    Dim lastLoginDate As Date
    Dim lastActivityDate As Date
    Dim lastPasswordChangedDate As Date
    Dim lastLockedOutDate As Date

    Dim User As MembershipUser = New MembershipUser(Me.Name, username, userID, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockedOutDate)
    Return User

    Ξέρω, εντελώς μπακαλίστικος αλλά παίζει μία χαρά. Η ερώτηση έχει ως εξής: Μέσα στη function ποιος είναι ο "σωστός" κώδικας που θα έπρεπε να γράψω; Όταν λέω σωστός εννοώ να κάνεις τη δουλειά σου χωρίς να γράφεις κώδικα που δε σου χρειάζεται. Βέβαια σιγά τον κώδικα που έγραψα, αλλά σκέφτομαι ότι υπάρχει πιο "σωστός"  κώδικας από τον δικό μου. Ευχαριστώ


Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems