Αντιμετώπιση προβλημάτων κοινά δικαιώματα και για θέματα που σχετίζονται με την ασφάλεια στο ASP.NET

Στήλη φωνητική υποστήριξη ASP.NET

Αντιμετώπιση προβλημάτων κοινά δικαιώματα και για θέματα ασφαλείας στο Microsoft ASP.NET

Για να προσαρμόσετε αυτήν τη στήλη με τις ανάγκες σας, θέλετε να προσκαλέσετε να υποβάλετε τις ιδέες σας σχετικά με θέματα που ενδιαφέρουν μπορείτε και θέματα για τα οποία θέλετε να δείτε απευθύνονται στο μέλλον, άρθρα Γνωσιακής βάσης και φωνητική υποστήριξη στήλες. Μπορείτε να υποβάλετε σας ιδέες και τα σχόλιά σας μέσω της φόρμας Σας ρωτήσει για αυτό . Υπάρχει επίσης μια σύνδεση για τη φόρμα στο κάτω μέρος αυτής της στήλης.
Γεια σας, αυτό είναι Vignesh A.G από την ομάδα του ASP.NET. Καλώς ορίσατε στη στήλη φωνητική υποστήριξη ASP.NET. Μπορώ να έχει ένας μηχανικός υποστήριξης προγραμματιστή για περισσότερα από δύο χρόνια τώρα στη Microsoft και αφιέρωσα χρόνο μου εστιάζεται στις ASP.NET και Microsoft Internet Information Services (IIS).

Δεν θα την εστίαση αυτής της στήλης, για να εξηγήσετε την ασφάλεια ASP.NET, αλλά να διαρθρώσετε μερικές τεχνικές αντιμετώπισης προβλημάτων και συμβουλές που θα σας βοηθήσει να απομονώσετε και να επιλύσετε ορισμένα κοινά δικαιώματα και σενάρια ασφαλείας που βλέπουμε εδώ με τις υπηρεσίες PSS. Τα δικαιώματα και τα ζητήματα που σχετίζονται με την ασφάλεια στο ASP.NET τεκμηριώνονται πολύ καλά. Στην πραγματικότητα, θα υπάρχει μια καλή αριθμό των ατόμων που μπορεί να έχετε εκτελέσει σε το ίδιο θέμα πριν από την που. Έτσι, ο στόχος είναι για αυτήν τη στήλη είναι ένα καλό σημείο για να βρείτε πληροφορίες σχετικές και εξαντλητικό σχετικά με την ασφάλεια ASP.NET. Δεν υπάρχει καμία καλύτερη αίσθηση από τη διόρθωση του ζητήματος μόνοι σας.

Χρήσιμα εργαλεία

Πριν να προσπαθήσετε να διορθώσετε κάτι που έχει διακοπεί, θα πρέπει να εξοικειωθείτε με μερικά εργαλεία που θα σας βοηθήσουν να απομονώσετε το ζήτημα. Στην περίπτωσή μας, θα είμαστε ενδιαφέρει εργαλεία όπως το FileMon, RegMon και τον έλεγχο ασφαλείας. Για περισσότερες πληροφορίες σχετικά με το FileMon, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:Για περισσότερες πληροφορίες σχετικά με RegMon, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:

Λεπτομερής έρευνα για να απομονώσετε το πρόβλημα

  • Έχει την εφαρμογή ποτέ εργαστεί; Εάν Ναι, τότε τι άλλαξε που θα μπορούσε να έχετε κάνει την αλλαγή εφαρμογής; Είναι πιθανό ότι εφαρμόστηκαν ενημερωμένες εκδόσεις ή ενημερωμένες εκδόσεις ασφαλείας στο διακομιστή. Ένας κωδικός προώθησης επίσης θα μπορούσε να έχει προκάλεσε το ζήτημα.
  • Απλές σελίδες .html και .asp εξυπηρέτηση από το IIS;
  • Μετεγκαταστάθηκαν στην εφαρμογή διαφορετική έκδοση των υπηρεσιών IIS
  • Κάνετε άλλες εφαρμογές ASP.NET για την αποτυχία του διακομιστή με το ίδιο σφάλμα; Είναι η μόνη εφαρμογή που αποτυγχάνει;
  • Το ζήτημα παρουσιάζεται για όλους τους χρήστες ή μόνο συγκεκριμένους χρήστες;
  • Το ζήτημα να είναι αναπαραγώγιμες κατά την περιήγηση σε τοπικά στο διακομιστή Web ή είναι αναπαραγώγιμες για μόνο μερικά προγράμματα-πελάτες;
  • Εάν χρησιμοποιείτε απομίμησης, τότε το απομιμούμενο χρήστη διαθέτει την αναγκαία πρόσβαση στον πόρο;
Τις παραπάνω ερωτήσεις είναι χρήσιμα για τη διάγνωση ενός προβλήματος. Εάν καταχωρείτε το θέμα σας σε οποιαδήποτε από τις ASP.NET φόρουμ, και αν έχετε ήδη τις απαντήσεις στις περισσότερες από αυτές τις ερωτήσεις, τότε είναι πιθανό ότι θα λάβετε μια γρήγορη δείκτη ή λύσης στο ζήτημά σας. Το κλειδί είναι να καταχωρήσετε το σύνολο ASP.NET στοίβα ανίχνευση σφάλματος, εάν ισχύει, αντί να λέει "λαμβάνω σφάλμα δεν επιτρέπεται η πρόσβαση κατά την εκτέλεση της εφαρμογής ASP.NET μου. Μπορεί οποιοσδήποτε να;" Είναι πιο εύκολο για κάποιον να κοιτάξετε το ίχνος στοίβας και παρέχουν δείκτες όταν μπορούν να δουν ένα μήνυμα σφάλματος ολοκληρώθηκε. Επομένως, θα πρέπει να αναρωτηθείτε...

Τι είναι το ακριβές μήνυμα σφάλματος;

Την πρώτη ερώτηση που θα σας ζητήσουμε πελάτες είναι "Ποιο είναι το ακριβές μήνυμα λάθους;" Εάν έχετε μια σαφή περιγραφή του μηνύματος λάθους που δημιουργήθηκε με το Microsoft .NET Framework, μπορείτε να παραλείψετε αυτήν την ενότητα. Εάν η εφαρμογή σας μάσκες το μήνυμα σφάλματος και σας δίνει ένα φιλικό μήνυμα σφάλματος, όπως "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα. Επικοινωνήστε με το διαχειριστή της τοποθεσίας Web για λεπτομέρειες, "δεν είναι πολύ χρήσης σε όλους. Ακολουθούν μερικά βήματα που θα σας βοηθήσει να λάβετε το μήνυμα σφάλματος.
  • Εντοπίστε και ανοίξτε το αρχείο Web.config, στον κατάλογο της εφαρμογής και αλλαγή customErrors σε κατάσταση λειτουργίας = "Off". Αποθηκεύστε το αρχείο και να αναπαραγάγετε το ζήτημα.
  • Ακόμα δεν είναι πιθανό να βλέπετε το μήνυμα σφάλματος αφού ακολουθήσετε τα παραπάνω βήμα εξαιτίας χειρισμού προσαρμοσμένων συμβάντων/σφαλμάτων έγινε από τον προγραμματιστή εφαρμογών. Μπορείτε να προσπαθήσετε να εντοπίσετε το συμβάν Application_Errorστο αρχείο Global.asax και σχολιάζετε οποιονδήποτε κώδικα που χρησιμοποιεί το
    Η συνάρτηση Server.Transfer("Errors.aspx") για να μεταβείτε σε μια προσαρμοσμένη σελίδα σφάλματος.
/Global.asax void Application_Error(object sender, EventArgs e) 
{
// Code that runs when an unhandled error occurs
//Server.Transfer("Errors.aspx");

}

Αφού λάβετε το μήνυμα σφάλματος, διαβάστε, για να προσδιορίσετε εάν το σφάλμα προκαλείται από δικαιώματα που λείπουν σε τοπικό πόρο ή σε έναν απομακρυσμένο πόρο που προσπαθεί να αποκτήσει πρόσβαση εφαρμογής ASP.NET.

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

Το ζήτημα παρουσιάζεται εξαιτίας λείπουν δικαιώματα σε τοπικό πόρο που η εφαρμογή ASP.NET προσπαθεί να αποκτήσει πρόσβαση

Εάν δεν μπορείτε να λάβετε μια σαφή περιγραφή του προβλήματος εξαιτίας ενός προσαρμοσμένου μηνύματος σφάλματος, εκτελέστε το FileMon και να αναπαραγάγετε το ζήτημα. Διακοπή και αποθηκεύστε την καταγραφή ως FileMon.xls και ανοίξτε το αρχείο στο Microsoft Excel. Από το μενού " δεδομένα ", κάντε κλικ στην επιλογή φίλτροκαι, στη συνέχεια, κάντε κλικ στο κουμπί "Αυτόματο Φίλτρο" για να χρησιμοποιήσετε τις δυνατότητες φιλτραρίσματος του Excel. Τώρα επιλέξτε την αναπτυσσόμενη λίστα στην στήλη στ και αναζητήστε σφάλματα "Δεν επιτρέπεται η ΠΡΌΣΒΑΣΗ".

Ένα δείγμα εξόδου FileMon φαίνεται παρακάτω.
10381 1:01:11 PM w3wp.exe:2320 OPENC:\winnt\microsoft.net\framework\v1.1.4322\Temporary ASP.NET
Files\sessiontest\8832e585\275ec327\global.asax.xml ACCESS DENIED NT
AUTHORITY\NETWORK SERVICE
Όπως μπορείτε να δείτε από τα φιλτραρισμένα αποτελέσματα, μας έχουν εντοπιστεί η αιτία του προβλήματος. FileMon δείχνει ότι το λογαριασμό NT AUTHORITY\NETWORK SERVICE δεν έχει δικαιώματα NTFS στο φάκελο αρχείων ASP.NET C:\Winnt\Microsoft.net\Framework\v1.1.4322\Temporary. Αυτό πρέπει να είναι ευθεία προς τα εμπρός για να διορθώσετε.
Για περισσότερες πληροφορίες σχετικά με το FileMon για την αντιμετώπιση προβλημάτων του ASP.NET, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

Αντιμετώπιση προβλημάτων ASP.NET 890960 να χρησιμοποιείτε το FileMon

Tip Ένα καλό βήμα είναι να αλλάξετε το λογαριασμό διεργασίας ASP.NET σε ένα λογαριασμό διαχειριστή για να δείτε εάν αυτό επιλύει το πρόβλημα. Στο IIS 5.x θα πρέπει να αλλάξετε το
το όνομα χρήστη για να "Σύστημα" στην ενότητα διαδικασία το μοντέλο του αρχείου machine.config και στις υπηρεσίες IIS 6.0 θα αλλάξετε την ταυτότητα ταυτότητα των υπηρεσιών IIS "Τοπικό σύστημα" για να δείτε εάν η εφαρμογή λειτουργεί.

Σημείωση Αυτό δεν πρέπει να χρησιμοποιείται ως λύση, αλλά μόνο ως βήμα αντιμετώπισης προβλημάτων.

Οι περισσότεροι άνθρωποι τείνουν να επανεγκαταστήσετε το Microsoft .NET Framework ή ακόμη και μεταβείτε στο βαθμό του επανεγκατάσταση του λειτουργικού συστήματος. Αυτό δεν συνιστάται βήμα αντιμετώπισης προβλημάτων και δεν εγγυάται ότι το ζήτημα θα προκύψει ξανά. Παρέχει ένα τέτοιο παράδειγμα. Προβλήματα διακοπτόμενης συχνά είναι δύσκολο να απομονώσετε και να αντιμετωπίσετε το πρόβλημα. Σε αυτό το σενάριο εφαρμογής του πελάτη θα λειτουργεί σωστά για μερικές ώρες και, στη συνέχεια, όλα από ένα sudden αυτό θα αποτύχει με το παρακάτω σφάλμα. Ο πελάτης είχε ήδη προσπαθήσει επανεγκατάσταση του .NET Framework, καθώς και το λειτουργικό σύστημα. Αυτό ήταν για να διορθώσετε το ζήτημα για μερικές ημέρες, αλλά στη συνέχεια reappeared.

Server Error in '/MyApp' Application

Εκτέλεση FileMon δεν παρουσίαζαν σφάλματα δεν επιτρέπεται η ΠΡΌΣΒΑΣΗ. Όλα τα απαραίτητα δικαιώματα για το λογαριασμό ASPNET ήταν σε θέση. Ο μόνος τρόπος για να επιδιορθώσετε το πρόβλημα είναι να κάνετε επανεκκίνηση του πλαισίου. Ακόμη και μια επαναφορά IIS δεν θα σας βοηθήσει. Σκέφτεστε "Ah, λογισμικό της Microsoft χρειάζεται πάντα επανεκκίνηση για να ανακτήσετε;" Επίσης, είναι λάθος!

Το κλειδί εδώ είναι να κοιτάξετε πιο προσεκτικά το μήνυμα λάθους. Το σφάλμα αναφέρει σαφώς ότι "δεν είναι δυνατό το άνοιγμα ενός αρχείου για εγγραφή," και δεν το συνήθη ΠΡΌΣΒΑΣΗ σφάλμα, έτσι σκέφτομαι ότι είναι κάποια άλλη διαδικασία που είναι η τήρηση κλειδωμάτων σε ένα αρχείο ή φάκελο και δεν επιτρέπει ASP.NET εγγραφής σε αυτόν. Είναι λογικό ότι επανεκκίνηση θανάτωση στην άλλη διεργασία και την εκκίνηση της εφαρμογής ASP.NET πάλι την εργασία μέχρι τη διαδικασία παραπλανητικού διακομιστή κλειδώνει το αρχείο ξανά. Η λογική που έχετε να κάνετε είναι να απενεργοποιήσετε όλα τα προγράμματα προστασίας από ιούς, λογισμικό υποκλοπής τρίτου ή οποιοδήποτε άλλο αρχείο παρακολούθησης λογισμικό που εκτελείται στο διακομιστή. Δεν θέλω να καταδείξουν οποιοδήποτε συγκεκριμένο λογισμικό τρίτων κατασκευαστών. Ωστόσο, σε γενικές γραμμές, το λογισμικό προστασίας από ιούς είναι γνωστό ότι προκαλεί πολύ grief για τις εφαρμογές των υπηρεσιών IIS και του ASP.NET. Μια άλλη γνωστό ζήτημα προκαλείται από λογισμικό προστασίας από ιούς είναι απώλειας λόγω AppDomain ανακυκλώνεται όταν το φάκελο Bin ή τα αρχεία .config είναι αγγιχτεί την περίοδο λειτουργίας.

Συμβουλή Ο ευκολότερος τρόπος για να απενεργοποιήσετε υπηρεσίες τρίτων κατασκευαστών είναι για να:
  1. Κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεσηκαι, στη συνέχεια, πληκτρολογήστε msconfig.
  2. Επιλέξτε υπηρεσίες και ελέγχου Αποκρύψετε όλες τις υπηρεσίες της Microsoft.
  3. Κάντε κλικ στο κουμπί Απενεργοποίηση όλων για να διακόψετε τις υπηρεσίες τρίτων κατασκευαστών.
  4. Κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεσηκαι, στη συνέχεια, πληκτρολογήστε iisresetγια να φορτώσετε εκ νέου το CLR σε διαδικασίας εργασίας.
Παρακολουθεί την εφαρμογή σας για να δείτε εάν το ζήτημα εμφανιστεί ξανά. Εάν εκτελείτε πολλά προγράμματα προστασίας από ιούς, χρησιμοποιήστε τη μέθοδο δοκιμής και σφάλματος για να προσδιορίσετε το συγκεκριμένο πρόγραμμα που προκαλεί το ζήτημα.

Σημείωση Εάν το ίδιο σφάλμα είναι αναπαραγώγιμες 100 τοις εκατό του χρόνου, το λογισμικό αντιμετώπισης ιών δεν μπορεί να είναι η αιτία. Μπορεί να υπάρχουν και άλλες αιτίες που προκαλούν αυτό το σφάλμα. Προσπαθήστε να δημιουργήσετε μια απλή εφαρμογή ASP.NET δοκιμή, για να απομονώσετε εάν το ίδιο σφάλμα προκύπτει για μια σελίδα Test.aspx. Εάν, στη συνέχεια, να επαληθεύσετε ότι η απαιτούμενη λίστες ελέγχου πρόσβασης (ACL) είναι όλα σε θέση για το ASP.NET.

Δείτε ASP.NET απαιτείται λίστες ελέγχου πρόσβασης (ACL):
http://msdn2.microsoft.com/en-us/library/kwzs111e.aspx

Συμβουλή Ο φάκελος %SystemRoot%\Assembly είναι το καθολικό cache συγκροτήσεων. Δεν μπορείτε να χρησιμοποιήσετε απευθείας Εξερεύνηση των Windows για να επεξεργαστείτε ACL για αυτόν το φάκελο. Αντί για αυτό, χρησιμοποιήστε μια γραμμή εντολών και εκτελέστε την ακόλουθη εντολή:
Cacls %windir%\assembly /e /t /p domain\useraccount:r
Εναλλακτικά, πριν από την Εξερεύνηση των Windows, καταργήστε Shfusion.dll με την ακόλουθη εντολή για να δώσετε δικαιώματα μέσω του GUI:
C:\WINDOWS\Microsoft.NET\Framework\VersionNumber>regsvr32–u shfusion.dll
Μετά τη ρύθμιση δικαιωμάτων με την Εξερεύνηση των Windows, επαναλάβετε την καταχώρηση Shfusion.dll με την ακόλουθη εντολή:
C:\WINDOWS\Microsoft.NET\Framework\VersionNumber>regsvr32 shfusion.dll

Το ζήτημα παρουσιάζεται εξαιτίας λείπουν δικαιώματα σε έναν απομακρυσμένο πόρο που προσπαθεί να αποκτήσει πρόσβαση της εφαρμογής ASP.NET

Όταν η εφαρμογή ASP.NET έχει πρόσβαση σε έναν απομακρυσμένο πόρο, όπως Microsoft SQL Server ή σε ένα κοινόχρηστο στοιχείο διεθνούς σύμβασης ονομάτων (Universal Naming Convention (UNC), υπάρχουν πολλά πράγματα που μπορεί να παρουσιαστούν. Επίσης, πολλά πράγματα μπορεί να είναι εσφαλμένα ορίσετε στον απομακρυσμένο πόρο. Θα χρειαστεί να αντιμετωπίσετε αυτά τα θέματα για τη λειτουργία του πόρου. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

891031 κοινά ζητήματα ασφαλείας κατά την πρόσβαση σε απομακρυσμένους πόρους από ASP.NET εφαρμογές

Το πρώτο βήμα είναι να δείτε εάν μπορείτε να συνδεθείτε στον απομακρυσμένο διακομιστή μέσω της Εξερεύνησης των Windows.
  1. Στον απομακρυσμένο διακομιστή, δημιουργήστε ένα φάκελο που ονομάζεται δοκιμής. Στις καρτέλες κοινή χρήση και ασφάλεια του φακέλου δοκιμής, προσθέστε/δικό σας λογαριασμό τομέα, καθώς και ο λογαριασμός διαδικασίας που χρησιμοποιείται από την εφαρμογή ASP.NET και να τους δώσετε δύο πλήρους ελέγχου.

    Σημείωση Ανατρέξτε στο θέμα891031 για τεχνικές ή λύσεις για να αποκτήσετε πρόσβαση σε απομακρυσμένους πόρους από ASP.NET.
  2. Στο διακομιστή των υπηρεσιών IIS, συνδεθείτε με τον τομέα/λογαριασμό σας, κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεσηκαι, στη συνέχεια, πληκτρολογήστε τη διαδρομή του κοινόχρηστου στοιχείου UNC του απομακρυσμένου διακομιστή:
    \\RemoteServerName\Test
    Εάν δεν είναι δυνατή η πρόσβαση σε αυτόν το φάκελο, επικοινωνήστε με το διαχειριστή του δικτύου σας για να διορθώσετε αυτό το ζήτημα. Μόνο κατόπιν εφαρμογής ASP.NET πρόσβαση στο κοινόχρηστο στοιχείο.
  3. Δημιουργήστε ένα αρχείο που ονομάζεται CreateUNCFile.aspx με τον παρακάτω κώδικα και αποθηκεύστε το αρχείο στον κατάλογο της εφαρμογής.
    <%@ Page Language="vb" %><%@ Import Namespace="System.IO" %>
    <html>
    <head>
    <title>Writing to a Text File</title>
    <script runat="server">
    Sub WriteToFile(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim fp As StreamWriter
    fp = File.CreateText("\\<RemoteServerName>\Test\" & "test.txt")
    fp.WriteLine(txtMyFile.Text)
    lblStatus.Text = "The File Successfully created! Your ASP.NET process is able to access this remote share"
    fp.Close()
    End Sub
    </script>

    </head>
    <body style="font: 10pt verdana">
    <h3 align="center">Creating a Text File in ASP.NET</h3>
    <form id="Form1" method="post" runat="server">
    Type your text:
    <asp:TextBox ID="txtMyFile" TextMode="MultiLine" Rows="10" Columns="60" Runat="server" /><br>
    <asp:button ID="btnSubmit" Text="Create File" OnClick="WriteToFile" Runat="server" />
    <asp:Label ID="lblStatus" Font-Bold="True" ForeColor="#ff0000" Runat="server" />
    </form>
    </body>
    </html>

  4. Βεβαιωθείτε ότι τροποποιείτε < Όνομα_απομακρυσμένου_διακομιστή > στην ακόλουθη γραμμή κώδικα
    fp = File.CreateText("\\<RemoteServerName>\Test\" &"test.txt")
    έτσι ώστε να απεικονίζει το όνομα του απομακρυσμένου διακομιστή.
  5. Ανοίξτε τον Internet Explorer των Windows και αναζητήστε το http://IISServerName/ /CreateUNCFile.aspxόνομα_εφαρμογήςαπό έναν υπολογιστή-πελάτη από το διακομιστή των υπηρεσιών IIS.
  6. Εάν το αρχείο Test.txt δημιουργεί με επιτυχία, κατόπιν εφαρμογής ASP.NET μπορεί να γίνεται έλεγχος ταυτότητας στον απομακρυσμένο πόρο.
  7. Εάν η δημιουργία αρχείων αποτύχει από ένα πρόγραμμα περιήγησης-πελάτη του Internet Explorer, αλλά λειτουργεί εάν μεταβείτε στην ίδια σελίδα από το ίδιο το διακομιστή των υπηρεσιών IIS, τότε είναι πιθανό ότι εκτελούνται σε ένα σενάριο "Διπλού άλματος". Εάν χρησιμοποιείτε προσαρμοσμένα δομημένα τμήματα Web για να αποκτήσετε πρόσβαση σε απομακρυσμένους πόρους που απαιτούν έλεγχο ταυτότητας και εξουσιοδότηση, θα συναντήσετε πιθανότατα το πρόβλημα "Διπλού άλματος". Για να αποκτήσετε πρόσβαση σας απομακρυσμένο πόρο, ίσως χρειαστεί να δώσετε πιστοποιήσεις στον τελικό χρήστη στον πόρο, ώστε να περιορίζεται η έξοδος από τον πόρο με τα δεδομένα που ο τελικός χρήστης έχει δικαιώματα πρόσβασης.
Τα παραπάνω βήματα προϋποθέτουν ότι έχετε ενεργοποιημένη στο IIS τον έλεγχο ταυτότητας NTLM. Ο βασικός έλεγχος ταυτότητας δεν χρησιμοποιεί το πρωτόκολλο Kerberos.
Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

907272 τον έλεγχο ταυτότητας Kerberos και αντιμετώπιση προβλημάτων της αντιπροσώπευσης

326985 Τρόπος αντιμετώπισης προβλημάτων που σχετίζονται με το Kerberos στο IIS

Για περισσότερες πληροφορίες σχετικά με τις μεθόδους ελέγχου ταυτότητας των υπηρεσιών IIS, ανατρέξτε στην ακόλουθη τοποθεσία της Microsoft Developer Network (MSDN) στο Web:

Συμβουλή Εάν μπορείτε να συνδεθείτε με τον απομακρυσμένο κοινόχρηστο στοιχείο UNC, αλλά δεν μπορείτε να συνδεθείτε στον απομακρυσμένο διακομιστή που εκτελεί τον SQL Server από την εφαρμογή ASP.NET, ενδέχεται να έχετε για να ελέγξετε ή να ορίσετε τα ονόματα κύριος υπόχρεος υπηρεσίας (SPN) για τον SQL Server. Προσπαθήστε να ενεργοποιήσετε μόνο βασικό έλεγχο ταυτότητας για την εφαρμογή σας στις υπηρεσίες IIS και να δείτε αν είναι δυνατή η σύνδεση με τον απομακρυσμένο διακομιστή που εκτελεί τον SQL Server.
Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

319723 τρόπος για να χρησιμοποιήσετε τον έλεγχο ταυτότητας Kerberos σε SQL Server

316989 μήνυμα λάθους κατά τη δημιουργία μιας σύνδεσης αξιόπιστων δεδομένων από το ASP.NET στον SQL Server: "η σύνδεση απέτυχε για το χρήστη:"Όνομα λογαριασμού""

Συμβουλή Συνέστησε ποτέ να χρησιμοποιήσετε αντιστοιχισμένες μονάδες δίσκου για να συνδεθείτε σε έναν απομακρυσμένο πόρο, επειδή οι αντιστοιχίσεις μονάδων δίσκου είναι μια επέκταση της την εντολή net use και δημιουργούνται σε βάση ανά χρήστη. Η προτιμώμενη μέθοδος για την πρόσβαση σε περιεχόμενο για το διακομιστή Web που βρίσκεται σε έναν απομακρυσμένο υπολογιστή είναι να χρησιμοποιήσετε κοινόχρηστα στοιχεία που ακολουθούν διαδρομές UNC. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

257174 χρήση αντιστοιχισμένες μονάδες δίσκου με IIS

Κωδικός πρόσβασης ασφαλείας (CA) που σχετίζονται με το θέμα

Μηνύματα λάθους στο ASP.NET είναι λεπτομερή και πιο συχνά από δεν σας πληροφορήσει τι ακριβώς είναι το πρόβλημα είναι. Σε ορισμένες περιπτώσεις, FileMon ή RegMon μπορεί να καταγράψετε οποιαδήποτε χρήσιμη πληροφορία. Ας ρίξουμε μια ματιά σε ένα τέτοιο σενάριο.

Το σενάριο

Κατά την προσπάθεια για να κάνετε αναζήτηση σε μια εφαρμογή ASP.NET, αποτύχει με γενικό σφάλμα όπως το ακόλουθο σφάλμα infamous:
Server Application Unavailable
Εμφανίζει το αρχείο καταγραφής συμβάντων:

Τύπος συμβάντος: σφάλμα
Προέλευση συμβάντος: ASP.NET 1.1.4322.0
Κατηγορία συμβάντος: καμία
Το Αναγνωριστικό συμβάντος: 1088
Ημερομηνία: 10/11/2006
Ώρα: 10:54:04 μμ
Χρήστης: δ/υ
Υπολογιστή: όνομα υπολογιστή
Περιγραφή:
Απέτυχε η εκτέλεση της αίτησης επειδή δεν ήταν δυνατή η δημιουργία του App-Domain. Σφάλμα: 0x8013150a
Κατά τη δημιουργία ενός τομέα εφαρμογών ASP.NET, το ASP.NET διαβάζει την τιμή που έχει καθοριστεί για το επίπεδο χαρακτηριστικό του το στοιχείο παραμέτρων αξιοπιστίας, δημιουργεί μια παρουσία της κλάσης AspNetHostingPermission με το καθορισμένο
Χαρακτηριστικό επίπεδο , και στη συνέχεια προσθέτει την κλάση του συνόλου δικαιωμάτων για τον τομέα εφαρμογής. Θα δείτε το παραπάνω σφάλμα εάν τα επίπεδα αξιοπιστίας είναι εσφαλμένα ρυθμισμένος ή να τροποποιηθεί. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα "ASP.NET αξιοπιστίας επίπεδα και αρχείων πολιτικής" στην ακόλουθη τοποθεσία του MSDN στο Web:Για να επιλύσετε αυτό το ζήτημα, μπορείτε να δοκιμάσετε αυτό Συμβουλή στην ενότητα "Το ζήτημα παρουσιάζεται εξαιτίας λείπουν δικαιώματα σε τοπικό πόρο που η εφαρμογή ASP.NET προσπαθεί να αποκτήσει πρόσβαση", αλλά δεν εμφανίζεται disheartened εάν η εφαρμογή δεν λειτουργεί με ένα λογαριασμό διαχειριστή ή ΣΥΣΤΉΜΑΤΟΣ. Θα πρέπει να ελέγξετε για να δείτε εάν το ζήτημα μπορεί να οφείλεται σε ασφάλειας πρόσβασης κώδικα. Αυτό μπορεί εύκολα να γίνει με την απενεργοποίηση της ασφάλειας πρόσβασης κώδικα χρησιμοποιώντας το βοηθητικό πρόγραμμα Caspol.exe.
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 >Απενεργοποίηση caspol -s
Microsoft (R) .NET Framework CasPol 1.1.4322.573
Πνευματικά δικαιώματα (C) Microsoft Corporation 1998-2002. Με επιφύλαξη κάθε νόμιμου δικαιώματος.


Επιτυχία

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>
Αφού εκτελέσετεcaspol – s off, επαναφορά IIS και προσπαθήστε να περιηγηθείτε στην εφαρμογή. Εάν λειτουργεί αυτό το βήμα, στη συνέχεια, πρέπει να ελέγξετε του συνόλου δικαιωμάτων για τις ενότητες κώδικα. Μπορείτε να αποκτήσετε πρόσβαση στις ομάδες κώδικα στο εργαλείο ρύθμισης παραμέτρων του Microsoft .NET Framework VersionNumberπου βρίσκεται στο Εργαλεία διαχείρισης.

Σε αυτό το σενάριο, το Σύνολο δικαιωμάτων για την ομάδα του My_Computer_Zone κώδικα έχει οριστεί σε Nothing. Η μετατροπή του σε Πλήρους αξιοπιστίας επιλύθηκε το θέμα

Σημείωση Για να αποκτήσετε πρόσβαση στην ομάδα του My_Computer_Zone κώδικα, ακολουθήστε τα εξής βήματα:
  1. Στον πίνακα ελέγχου, κάντε διπλό κλικ στο " Εργαλεία διαχείρισης".
  2. Κάντε διπλό κλικ στο Ρύθμιση παραμέτρων του Microsoft .NET Framework VersionNumber .
  3. Κάντε διπλό κλικ στην πολιτική ασφαλείας κατά το χρόνο εκτέλεσης.
  4. Κάντε διπλό κλικ στο μηχάνημα.
  5. Κάντε διπλό κλικ κώδικα ομάδες.
  6. Κάντε διπλό κλικ στο All_Code.
  7. Κάντε διπλό κλικ στο My_Computer_Zone.
Συμβουλή Θυμηθείτε να εκτελέσετε caspol – s σε για να ενεργοποιήσετε CAS αφού έχουν διορθωθεί το ζήτημα.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα ασφάλειας πρόσβασης κώδικα ASP.NET:
http://msdn2.microsoft.com/en-us/library/87x8e4d1.aspx

Υπάρχουν πολλές άλλες αιτίες για το "Διακομιστή εφαρμογής διαθέσιμο" μήνυμα λάθους. Το αρχείο καταγραφής είναι η καλύτερη επιλογή σας για να δείτε περισσότερες λεπτομέρειες σχετικά με την αιτία του θέματος.

Σφάλματα που σχετίζονται με τις υπηρεσίες IIS

Τα αρχεία καταγραφής των υπηρεσιών IIS είναι πολύ χρήσιμα σε περιπτώσεις σφαλμάτων που σχετίζονται με τον έλεγχο ταυτότητας των υπηρεσιών IIS. Ένα κοινό σενάριο είναι όταν ο χρήστης συνήθως θα δείτε τα εξής:
You are not authorized to view this page
Ό, τι χρειάζεστε για να αναζητήσετε είναι η κατάσταση και sub κωδικοί κατάστασης για αυτό το συγκεκριμένο σφάλμα.
2006-10-12 22:47:28 W3SVC1 65.52.18.230 ΛΆΒΕΤΕ /MyAPP/login.aspx - 80
Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+InfoPath.1) \UserID_91 65.52.22.58 ΈναςΤομέας401 3 5
Βλέπουμε μια 401 με δευτερεύουσα κατάσταση 3, που σημαίνει "Χωρίς εξουσιοδότηση λόγω ACL στον πόρο."

Αυτό σημαίνει ότι λείπουν δικαιώματα NTFS για ένα αρχείο ή φάκελο. Αυτό το σφάλμα μπορεί να προκύψει ακόμα και αν τα δικαιώματα είναι σωστές για το αρχείο που προσπαθείτε να αποκτήσετε πρόσβαση, αλλά τα προεπιλεγμένα δικαιώματα και τα δικαιώματα χρήστη μπορεί να λείπει σε άλλους φακέλους ΣΥΣΤΉΜΑΤΟΣ και τις υπηρεσίες IIS. Για παράδειγμα, μπορεί να δείτε αυτό το σφάλμα, αν ο λογαριασμός IUSR_όνομα_υπολογιστή δεν έχει πρόσβαση στον κατάλογο C:\Winnt\System32\Inetsrv. Για περισσότερες πληροφορίες σχετικά με τους κωδικούς κατάστασης των υπηρεσιών IIS, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

318380 περιγραφή του Microsoft Internet Information Services (IIS) 5.0 και 6.0 των κωδικών κατάστασης

812614 προεπιλεγμένα δικαιώματα και δικαιώματα χρήστη για τις υπηρεσίες IIS 6.0

271071 Τρόπος ορισμού απαιτούμενα δικαιώματα NTFS και τα δικαιώματα χρήστη για ένα διακομιστή Web με IIS 5.0

Συμβουλή Κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεσηκαι, στη συνέχεια, πληκτρολογήστε logfiles για να ανοίξετε το φάκελο που περιέχει τα αρχεία καταγραφής των υπηρεσιών IIS. Εναλλακτικά, στη σελίδα "Ιδιότητες" για την τοποθεσία Web των υπηρεσιών IIS, κάντε κλικ στο κουμπί του
WebSiteName καρτέλα και υπό μορφή ενεργού αρχείου καταγραφής, κάντε κλικ στην εντολή Ιδιότητες , για να δείτε τον κατάλογο του αρχείου καταγραφής και το όνομα.

Το άλλο πράγμα ενδιαφέρει εδώ είναι ο κωδικός κατάστασης 5. Μπορείτε να χρησιμοποιήσετε την εντολή net helpmsg για να λάβετε περισσότερες πληροφορίες για αυτόν τον κωδικό κατάστασης:
C:\Documents και Ρυθμίσεις\όνομα χρήστη >net helpmsg 5
Δεν επιτρέπεται η πρόσβαση.
Ας δοκιμάσουμε άλλο κοινό κωδικό κατάστασης, κωδικός 50:
C:\Documents και Ρυθμίσεις\όνομα χρήστη >net helpmsg 50
Η αίτηση δεν υποστηρίζεται.
Συμβουλή Κάθε φορά που λαμβάνετε ένα άλλο γενικό infamous "500 Εσωτερικό σφάλμα διακομιστή" μήνυμα, τότε είναι καλή ιδέα να απενεργοποιήσετε τα φιλικά μηνύματα λάθους HTTP, έτσι ώστε να εμφανίζεται μια λεπτομερή περιγραφή του σφάλματος. Μην ξεχάσετε να έχει μορφή συμβάντων προβολής όπως μπορεί επίσης να περιέχουν περισσότερες πληροφορίες.
Για περισσότερες πληροφορίες σχετικά με το πώς μπορείτε να απενεργοποιήσετε τα φιλικά μηνύματα λάθους HTTP, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

294807 , απενεργοποιήστε τη δυνατότητα του Internet Explorer 5.x και 6.x "show friendly HTTP error messages" στο διακομιστή

Η ιδέα είναι να χρησιμοποιήσετε όλες οι πληροφορίες που καταγράφονται διαθέσιμο για μέγιστη λεπτομέρειες στη διάθεσή του προβλήματος.

Πόροι

Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

306590 Επισκόπηση της ασφάλειας ASP.NET

317012 ταυτότητα αίτησης και διαδικασίας στο ASP.NET

Πώς μπορείτε να δημιουργήσετε ένα λογαριασμό υπηρεσίας για μια εφαρμογή ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998297.aspx

Πίνακας ταυτότητας ASP.NET
http://msdn2.microsoft.com/en-us/library/aa302377.aspx

Προηγούμενη στήλες φωνητική υποστήριξη ASP.NET
http://support.microsoft.com/aspnetpsvc
Ελπίζω ότι αυτές οι απλές τεχνικές είναι χρήσιμα για την επίλυση των σχετικών προβλημάτων ασφαλείας και δικαιωμάτων. Θυμηθείτε ότι οι στήλες φωνητική υποστήριξη είναι για εσάς! Όπως πάντα, μπορείτε να χρησιμοποιήσετε το
Ερώτηση για την φόρμα να υποβάλουν ιδέες σχετικά με θέματα που θέλετε να δείτε παραλήπτη σε μελλοντικές στήλες ή της Γνωσιακής βάσης.
Ιδιότητες

Αναγνωριστικό άρθρου: 910449 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια