1. Έντυπα ταυτότητας (απλούστερος, συνιστάται αν είναι δυνατόν):
Εάν έχετε * οποιαδήποτε * ευελιξία στη ρύθμισή σας, η ευκολότερη και καθαρότερη λύση είναι να μεταβείτε στο στη φόρμα ταυτότητας . Ο έλεγχος ταυτότητας των Windows είναι άκαμπτος και στενά συνδεδεμένος με τη διαχείριση χρηστών του διακομιστή. Τα έντυπα ταυτότητας σάς επιτρέπουν να διαχειρίζεστε λογαριασμούς χρηστών στην εφαρμογή σας και παρέχει έναν απλό μηχανισμό αποσύνδεσης. Στη συνέχεια, μια απλή `formsauthentication.signout ()` Στη δράση του ελεγκτή σας θα χειριστεί τη αποσύνδεση.
`` `csharp
[Httppost]
Δημόσια δράση actionResult ()
{
FormSauthentication.Signout ();
επιστροφή ανακατεύθυνσης ("δείκτης", "σπίτι"); // Ανακατεύθυνση στην αρχική σας σελίδα
}
`` `
2. Αναγκάζοντας ένα νέο αίτημα (έλεγχος ταυτότητας Windows):
Εάν * πρέπει * να χρησιμοποιήσετε τον έλεγχο ταυτότητας των Windows, θα πρέπει να ενεργοποιήσετε ένα νέο αίτημα που θα αναγκάσει την επανεξέταση (ή την έλλειψή του). Δεν υπάρχει εντολή άμεσης "αποσύνδεσης". Καταστρέφετε ουσιαστικά το cookie περιόδου σύνδεσης:
* Ανακατεύθυνση σε ειδική διεύθυνση URL: Δημιουργήστε μια ενέργεια ελεγκτή που δεν απαιτεί έλεγχο ταυτότητας. Αυτή η ενέργεια δεν κάνει τίποτα εκτός από την ανακατεύθυνση. Το σημαντικό μέρος είναι ότι αυτή η ανακατεύθυνση θα καθαρίσει το υπάρχον cookie ελέγχου ταυτότητας. Το πρόγραμμα περιήγησης θα στείλει ένα νέο αίτημα και το IIS θα αναγνωρίσει ότι δεν υπάρχει έγκυρη συνεδρία.
`` `csharp
[Enlyanonymous] // Αυτό είναι κρίσιμο! Επιτρέπει την πρόσβαση χωρίς έλεγχο ταυτότητας
Δημόσια δράση actionResult ()
{
επιστροφή ανακατεύθυνσης ("/"); // ή σε οποιαδήποτε διεύθυνση URL που δεν απαιτεί έλεγχο ταυτότητας
}
`` `
* Clear Cookies (JavaScript από την πλευρά του πελάτη - λιγότερο αξιόπιστα): Αυτή η προσέγγιση είναι γενικά λιγότερο προτιμώμενη επειδή βασίζεται σε ενέργειες από την πλευρά του πελάτη και μπορεί να μην λειτουργεί πάντα αξιόπιστα σε όλα τα προγράμματα περιήγησης:
`` `javascript
document.cookie ="asp.net_sessionId =; expires =thu, 01 Ιαν 1970 00:00:00 utc; path =/;";
// Ενδεχομένως χρειάζεστε πρόσθετες γραμμές για να αφαιρέσετε άλλα cookies ελέγχου ταυτότητας ειδικά για τη ρύθμισή σας.
Window.location.href ="/logoff"; // Ανακατεύθυνση στη δράση αποστολής σας
`` `
Σημαντικές εκτιμήσεις με έλεγχο ταυτότητας Windows:
* Ρυθμίσεις IIS: Βεβαιωθείτε ότι οι ρυθμίσεις IIS της εφαρμογής σας έχουν ρυθμιστεί σωστά για έλεγχο ταυτότητας των Windows.
* Διαχείριση περιόδου σύνδεσης: Ο έλεγχος ταυτότητας των Windows βασίζεται συχνά στη διαχείριση της περιόδου σύνδεσης του διακομιστή (κατάσταση περιόδου σύνδεσης IIS). Η μέθοδος ανακατεύθυνσης παραπάνω τελειώνει αποτελεσματικά τη συνεδρία αναγκάζοντας ένα νέο αίτημα χωρίς cookie ελέγχου ταυτότητας.
* Πολλαπλά cookies: Ανάλογα με τη ρύθμισή σας, ενδέχεται να υπάρχουν πολλά cookies που σχετίζονται με τον έλεγχο ταυτότητας. Μπορεί να χρειαστεί να καθαρίσετε αυτά τα ρητά (αν και η μέθοδος ανακατεύθυνσης συνήθως αρκεί).
* Kerberos: Εάν εμπλέκεται ο Kerberos (κοινό σε επιχειρηματικά περιβάλλοντα), η διαδικασία αποσύνδεσης μπορεί να είναι πιο περίπλοκη, καθώς τα εισιτήρια Kerberos έχουν το δικό τους κύκλο ζωής και διαχείριση.
Σύσταση:
Σκεφτείτε σοβαρά το ενδεχόμενο να μεταβείτε σε έντυπα ταυτότητας εάν έχετε οποιοδήποτε έλεγχο στο έργο σας. Είναι πολύ απλούστερο να διαχειρίζεστε τις συνεδρίες χρηστών και την αποσύνδεση. Η διαχείριση της αποσύνδεσης ταυτότητας των Windows είναι εγγενώς πιο περίπλοκη και λιγότερο αξιόπιστη. Οι προσεγγίσεις παραπάνω λειτουργούν, αλλά βασίζονται σε έμμεσες μεθόδους τερματισμού της συνεδρίας των Windows. Πάντα να δοκιμάζετε διεξοδικά σε διαφορετικά προγράμματα περιήγησης.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα