ASP.NET Web Pages - Αντικείμενο WebSecurity

Περιγραφή

Το αντικείμενο WebSecurity παρέχει ασφάλεια και πιστοποίηση για τις εφαρμογές ASP.NET Web Pages.

Με το αντικείμενο WebSecurity, μπορείτε να δημιουργήσετε λογαριασμούς χρηστών, να συνδεθείτε και να αποσυνδεθείτε, να επαναφέρετε ή να αλλάξετε τον κωδικό πρόσβασης κ.λπ.

Εγχειρίδιο αναφοράς του αντικειμένου WebSecurity - Προσόντα

Περιλαμβάνει Περιγραφή
CurrentUserId Ανακτά το ID του τρέχοντος χρήστη.
CurrentUserName Ανακτά το όνομα του τρέχοντος χρήστη.
HasUserId Ανακτά την τιμή που δείχνει αν ο τρέχων χρήστης έχει ID χρήστη. Αν ναι, επιστρέφει true.
IsAuthenticated Ανακτά την κατάσταση πιστοποίησης του τρέχοντος χρήστη.

Εγχειρίδιο αναφοράς του αντικειμένου WebSecurity - Μέθοδοι

Περιλαμβάνει Περιγραφή
ChangePassword() Αλλάζει τον κωδικό πρόσβασης του χρήστη.
ConfirmAccount() Επιβεβαιώνει την ισχύ του λογαριασμού και ενεργοποιεί τον λογαριασμό.
CreateAccount() Δημιουργεί νέο λογαριασμό χρήστη.
CreateUserAndAccount() Δημιουργεί νέο λογαριασμό χρήστη.
GeneratePasswordResetToken() Δημιουργεί ένα token επαναφοράς κωδικού πρόσβασης που μπορεί να σταλεί μέσω email στον χρήστη.
GetCreateDate() Επιστρέφει την ημερομηνία και την ώρα δημιουργίας του καθορισμένου λογαριασμού μέλους.
GetPasswordChangeDate() Επιστρέφει την ημερομηνία και την ώρα της τελευταίας αλλαγής του κωδικού πρόσβασης του καθορισμένου λογαριασμού μέλους.
GetPasswordFailures
SinceLastSuccess()
Επιστρέφει τον αριθμό των λανθασμένων εισόδων κωδικού πρόσβασης από την τελευταία επιτυχημένη σύνδεση ή δημιουργία λογαριασμού μέλους.
GetUserId() Επιστρέφει το ID χρήστη με βάση το καθορισμένο όνομα χρήστη.
GetUserIdFrom
PasswordResetToken ()
Επιστρέφει το User ID από το token επαναφοράς κωδικού πρόσβασης.
InitializeDatabaseConnection() Initialize τον σύστημα μέλους μέσω σύνδεσης σε βάση δεδομένων που περιέχει πληροφορίες χρηστών.
IsAccountLockedOut() Δείχνει αν το καθορισμένο λογαριασμό μέλους έχει κλειστεί λόγω πολλαπλών αποτυχιών προσπάθειας κωδικού πρόσβασης.
IsConfirmed() Επιστρέφει μια τιμή που δείχνει αν ο χρήστης έχει ήδη επιβεβαιωθεί.
IsCurrentUser() Επιστρέφει μια τιμή που δείχνει αν το όνομα χρήστη του χρήστη που έχει συνδεθεί ταιριάζει με το καθορισμένο όνομα χρήστη.
Login() Σύνδεση χρήστη.
Logout() Αποσύνδεση χρήστη.
RequireAuthenticatedUser() Αν ο χρήστης δεν έχει πιστοποιηθεί, ρυθμίστε την κατάσταση HTTP σε 401 (Unauthorized).
RequireRoles() Αν ο τρέχων χρήστης δεν ανήκει στο καθορισμένο ρόλο, ρυθμίστε τον κώδικα κατάστασης HTTP σε 401.
RequireUser() Αν ο τρέχων χρήστης δεν είναι ο καθορισμένος χρήστης, ρυθμίστε την κατάσταση HTTP σε 401.
ResetPassword() Ανασύρετε τον κώδικα επαναφοράς του κωδικού πρόσβασης χρησιμοποιώντας το token επαναφοράς κωδικού πρόσβασης.
UserExists() Ελέγξτε αν ο χρήστης υπάρχει.

Technical Data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Initialization της βάσης δεδομένων WebSecurity

Πριν χρησιμοποιήσετε το αντικείμενο WebSecurity, πρέπει να δημιουργήσετε ή να initialize τη βάση δεδομένων WebSecurity.

Στο φάκελο web, δημιουργήστε ή επεξεργαστείτε τη σελίδα _AppStart.cshtml.

Στο αρχείο αυτό, γράψτε τον παρακάτω κώδικα:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

Κάθε φορά που ξεκινά το ιστότοπο, εκτελείται το παρακάτω κώδικα. Αυτό θα�始化 τη βάση δεδομένων WebSecurity.

"Users" είναι το όνομα της βάσης δεδομένων WebSecurity (Users.sdf).

Το "UserProfile" είναι το όνομα της βάσης δεδομένων που περιέχει πληροφορίες διαμόρφωσης χρήστη.

"UserId" περιέχει το όνομα της στήλης που περιέχει το ID χρήστη (πρωτεύον κλειδί).

"Email" είναι το όνομα στήλης που περιέχει το όνομα χρήστη.

Ο τελευταίος παράμετρος true είναι μια λογική τιμή που δείχνει αν πρέπει να δημιουργηθούν οι πίνακες των προφίλ χρηστών και των μελών (αν δεν υπάρχουν), σε αντίθετη περίπτωση false.

Σημείωση: Παρά το ότι το true δείχνει την αυτόματη δημιουργία των πινάκων της βάσης δεδομένων, η βάση δεδομένων本身 δεν δημιουργείται αυτόματα. Πρέπει να υπάρχει.

Δημιουργία Βάσης Δεδομένων WebSecurity

Κάθε καταγραφή στην τράπεζα δεδομένων UserProfile αντιπροσωπεύει έναν χρήστη, συμπεριλαμβανομένου του ID χρήστη (πρωτεύον κλειδί) και του ονόματος χρήστη (email):

UserId Email
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

Η τаблицή Membership περιέχει πληροφορίες μέλους, όπως πότε δημιουργήθηκε ο χρήστης και αν (και πότε) επιβεβαιώθηκε το μέλος.

Παρόμοια με αυτό (τις κάποιες στήλες δεν αναφέρονται):

UserId Ημερομηνία Δημιουργίας Επιβεβαίωση
Token
Είναι
Επιβεβαίωση
Τελευταίος
Λάθος Κωδικός
Κωδικός Αλλαγή Κωδικού
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Σημείωση:Αν θέλετε να δείτε όλες τις στήλες και το ολόκληρο το περιεχόμενο, ανοίξτε τη βάση δεδομένων μέσω του WebMatrix και ελέγξτε κάθε πίνακα.

Επιλογές Σύνδεσης Μέλους

Αν ο ιστότοπός σας δεν έχει ρυθμιστεί να χρησιμοποιεί το σύστημα μέλους SimpleMembership του ASP.NET Web Pages, μπορεί να προκύψει σφάλμα κατά τη χρήση του αντικειμένου WebSecurity.

Αν η ρύθμιση του παρόχου υπηρεσιών είναι διαφορετική από τον τοπικό σας διακομιστή, μπορεί να προκύψει σφάλμα. Για να λύσετε αυτό το πρόβλημα, προσθέστε τα εξής στο αρχείο Web.config του ιστοτόπου σας:

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>