Αναγν. άρθρου: 320268 - Τελευταία αναθεώρηση: Τρίτη, 21 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0

"System.Security.SecurityException: σφάλμα ασφαλείας" μήνυμα λάθους όταν κάνετε κοινή χρήση των σημείων εικονικό κατάλογο σε έναν απομακρυσμένο στο ASP.NET

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

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

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

Μήνυμα 1
Περιγραφή εξαίρεση ασφαλείας: Η εφαρμογή επιχείρησε να εκτελέσει μια λειτουργία που δεν επιτρέπεται από την πολιτική ασφαλείας. Για να εκχωρήσετε σε αυτήν την εφαρμογή το απαραίτητο δικαίωμα επικοινωνήστε με το διαχειριστή του συστήματός σας ή αλλάξτε το επίπεδο αξιοπιστίας της εφαρμογής στο αρχείο παραμέτρων.

Λεπτομέρειες εξαίρεσης: System.Security.SecurityException: ασφάλεια σφάλμα.

Προέλευση σφάλματος:

Γραμμή 30: ιδιωτικό στατική δυαδικός __intialized = false; γραμμής 31: 32 γραμμής: δημόσια Global_asax() {33 γραμμής: Εάν ((ASP.Global_asax.__intialized == false)) {34 γραμμής: ASP.Global_asax.__intialized = true;
Μήνυμα 2
Σφάλμα διακομιστή στην ' /ApplicationName' Εφαρμογής.

Περιγραφή σφάλματος ανάλυσης: Παρουσιάστηκε σφάλμα κατά την ανάλυση ενός πόρου που απαιτείται για την εξυπηρέτηση αυτής της αίτησης. Διαβάστε τις παρακάτω λεπτομέρειες σφάλματος συγκεκριμένης ανάλυσης και τροποποιήστε το αρχείο προέλευσης κατάλληλα.

Μήνυμα σφάλματος ανάλυσης: Δεν ήταν δυνατή η φόρτωση του τύπου 'ApplicationName.Global '.

Προέλευση σφάλματος:, γραμμή 1: < % @ Εφαρμογής Codebehind="Global.asax.cs" Κληρονομεί = "ApplicationName.Global"%> Αρχείο προέλευσης:Η διαδρομή της εφαρμογής\global.asax γραμμή: 1

Αιτία

Για ναSystem.Webχώρος ονομάτων δεν διαθέτει τοAllowPartiallyTrustedCallersAttributeεφαρμοστεί σε αυτό. Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://msdn2.Microsoft.com/en-us/library/ms994923.aspx (http://msdn2.microsoft.com/en-us/library/ms994923.aspx)
Οποιονδήποτε κώδικα που δεν περιλαμβάνεται στην ομάδα My_Computer_Zone κώδικα που δεν έχει το χαρακτηριστικό αυτό απαιτεί το δικαίωμα χρήστη FullTrust. Επομένως, το απομακρυσμένο κοινόχρηστο στοιχείο που περιέχει το περιεχόμενο εφαρμογές Web απαιτεί FullTrust.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτήν τη συμπεριφορά, εκχωρήστε το δικαίωμα FullTrust για το απομακρυσμένο κοινόχρηστο στοιχείο:
  1. Στο διακομιστή Web, ανοίξτε τα εργαλεία διαχείρισης και στη συνέχεια κάντε διπλό κλικMicrosoft .NET framework ρύθμισης παραμέτρων.
  2. expandΠολιτική ασφαλείας κατά το χρόνο εκτέλεσηςexpandΥπολογιστήςκαι, στη συνέχεια, αναπτύξτε το στοιχείοΚωδικός ομάδων.
  3. Κάντε δεξιό κλικ στο στοιχείοAll_Code, και στη συνέχεια κάντε κλικ στο κουμπίΝέα.
  4. ΕπιλογήΔημιουργία νέας ομάδας κώδικα. Δώστε την ομάδα σας κώδικα ένα σχετικό όνομα, όπως το όνομα του κοινόχρηστου στοιχείου εφαρμογές. Κάντε κλικΕπόμενο.
  5. ΣτοΕπιλέξτε τον τύπο της συνθήκης για τη συγκεκριμένη ομάδα κώδικαλίστα επιλογήςURL.
  6. ΣτοURLΠληκτρολογήστε τη διαδρομή του κοινόχρηστου στοιχείου, με την εξής μορφή:
    File:////\\computerName\SHARENAME\*
    ΣΗΜΕΙΩΣΗΑντικαταστήστε το τμήμαcomputerNameμε το όνομα του υπολογιστή που φιλοξενεί την Απομακρυσμένη κοινή χρήση. Αντικαταστήστε το τμήμαSHARENAMEμε το όνομα του κοινόχρηστου στοιχείου.
  7. Κάντε κλικΕπόμενο. Στην επόμενη σελίδα, επιλέξτεΧρήση υπάρχοντος συνόλου δικαιωμάτων, και στη συνέχεια επιλέξτεFullTrust.
  8. Κάντε κλικΕπόμενο, και στη συνέχεια κάντε κλικ στο κουμπίΦινλανδικά.
  9. Κάντε επανεκκίνηση του Microsoft Internet Information Services (IIS) για να κάνετε επανεκκίνηση της διαδικασίας εργασίας ASP.NET.
Εάν,Ρύθμιση παραμέτρων του Microsoft .NET frameworkδεν εμφανίζεται στην περιοχήΕργαλεία διαχείρισης, μπορείτε να εγκαταστήσετε το .NET Framework SDK, για να προσθέσετεΡύθμιση παραμέτρων του Microsoft .NET framework. Εναλλακτικά, μπορείτε να εκτελέσετε την ακόλουθη εντολή για να κάνετε την αλλαγή:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on
ΣΗΜΕΙΩΣΗΓια περισσότερες πληροφορίες σχετικά με το τι κάνουν αυτά τα ορίσματα, εκτελέστε την ακόλουθη εντολή:
caspol.exe-;

Κατάσταση

Αυτή η συμπεριφορά οφείλεται στη σχεδίαση.

Περισσότερες πληροφορίες

Σε αυτήν τη ρύθμιση, ο λογαριασμός με τον οποίο εκτελείται η διαδικασία εργασίας ASP.NET πρέπει να έχει επαρκή δικαιώματα για το απομακρυσμένο κοινόχρηστο στοιχείο. Μπορείτε να ορίσετε το λογαριασμό με τον οποίο εκτελείται η διαδικασία εργασίας χρησιμοποιώντας τοProcessModelη ετικέτα του αρχείου Machine.config.

Βήματα για την αναπαραγωγή της συμπεριφοράς

  1. Δημιουργήστε ένα νέο εικονικό κατάλογο που οδηγεί σε ένα απομακρυσμένο κοινόχρηστο στοιχείο.
  2. Δημιουργία μιας εφαρμογής για τον εικονικό κατάλογο. Βεβαιωθείτε ότι ο χρήστης που συνδέεται με το κοινόχρηστο στοιχείο θα έχει πρόσβαση ανάγνωσης στο απομακρυσμένο περιεχόμενο.
  3. ΣτοProcessModelη ετικέτα της το Machine.config αρχείων, αλλάξτε το χρήστη σε ένα χρήστη τομέα που έχει η λίστα, ανάγνωση, δικαιώματα και εκτέλεσης στο απομακρυσμένο κοινόχρηστο στοιχείο.
  4. Δημιουργήστε ένα ενσωματωμένο αρχείο .aspx και, στη συνέχεια, να τοποθετήσετε το αρχείο στον απομακρυσμένο κοινόχρηστο στοιχείο.
  5. Κάνετε μια αίτηση για τη σελίδα.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τα δικαιώματα που απαιτεί το λογαριασμό ASPNET να εκτελούν εφαρμογές ASP.NET, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
317012  (http://support.microsoft.com/kb/317012/ ) Ταυτότητα αίτησης και διαδικασίας στο ASP.NET
For more information about ASP.NET security, click the following article number to view the article in the Microsoft Knowledge Base:
306590  (http://support.microsoft.com/kb/306590/ ) ASP.NET security overview

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Λέξεις-κλειδιά: 
kbsecurity kbwebserver kbprb kbmt KB320268 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:320268  (http://support.microsoft.com/kb/320268/en-us/ )