ASP.NET ο ρόλος του machineKey
Εάν το Asp.Net σας εκτελεί το πρόγραμμα και αντιμετωπίσει αυτό το σφάλμα: "Η επικύρωση της κατάστασης προβολής MAC απέτυχε". Εάν αυτή η εφαρμογή φιλοξενείται από μια συστοιχία δικτύου ή σύμπλεγμα, βεβαιωθείτε ότι η <machineKey> ρύθμιση παραμέτρων καθορίζει το ίδιο κλειδί επικύρωσης και τον ίδιο αλγόριθμο επικύρωσης. Η Αυτόματη Δημιουργία δεν μπορεί να χρησιμοποιηθεί σε ένα σύμπλεγμα. Ποιος είναι λοιπόν ο σκοπός του machineKeys εάν δεν έχετε την εφαρμογή σας χρησιμοποιώντας ένα ενοποιημένο machineKey; Σύμφωνα με τα πρότυπα MSDN: «Διαμορφώστε τα κλειδιά που θα χρησιμοποιηθούν για την κρυπτογράφηση και την αποκρυπτογράφηση δεδομένων cookie ελέγχου ταυτότητας φορμών και την προβολή δεδομένων κατάστασης και για την επικύρωση ταυτοτήτων κατάστασης περιόδου λειτουργίας εκτός διαδικασίας». Με άλλα λόγια, πολλές από τις κρυπτογραφήσεις Asp.Net βασίζονται στις τιμές του machineKey, όπως το cookie ελέγχου ταυτότητας Forms και η κρυπτογράφηση του ViewState. Από προεπιλογή, η διαμόρφωση του Asp.Net δημιουργείται δυναμικά από μόνη της, εάν ένας μεμονωμένος διακομιστής είναι φυσικά εντάξει, αλλά εάν πολλοί διακομιστές είναι ισορροπημένοι με φορτίο, το machineKey υιοθετεί επίσης μια μέθοδο δυναμικής παραγωγής, η τιμή του machinekey σε κάθε διακομιστή είναι ασυνεπής, με αποτέλεσμα ασυνεπή κρυπτογραφημένα αποτελέσματα και δεν μπορεί να μοιραστεί την επαλήθευση και το ViewState, επομένως για εξισορρόπηση φορτίου πολλαπλών διακομιστών, το ίδιο machineKey πρέπει να διαμορφωθεί σε κάθε τοποθεσία.
Αλγόριθμος που δημιουργήθηκε ASP.NET machineKey:
|