Αναγν. άρθρου: 892442 - Τελευταία αναθεώρηση: Τετάρτη, 29 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0

Οι χρήστες πρέπει να υποβάλετε μια πλήρως προσδιορισμένη διαδρομή, όταν χρησιμοποιείτε το "input type = αρχείο" στοιχείο σε μια εφαρμογή Web στο Windows XP Service Pack 2

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

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

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

Συμπτώματα

Στα Microsoft Windows XP Service Pack 2 (SP2), μπορείτε να χρησιμοποιήσετε έναinput type = αρχείοτο στοιχείο σε μια εφαρμογή. Εάν επιτρέψετε στο χρήστη, πληκτρολογήστε μια διαδρομή στο τμήμα πλαισίου κειμένου του στοιχείου και δεν παρέχουν μια πλήρως προσδιορισμένη διαδρομή που περιλαμβάνει τη μονάδα δίσκου και προκύπτει το ριζικό φάκελο, μία από τις ακόλουθες συνθήκες:
  • Εάν ο χρήστης υποβάλλει τη φόρμα χρησιμοποιώντας έναinput type = υποβολήτο στοιχείο, δεν συμβαίνει τίποτα.
  • Εάν ο χρήστης προσπαθήσει να υποβάλει τη φόρμα που περιέχει το στοιχείο ελέγχου κάνοντας κλικ σε μια σύνδεση και αυτή η σύνδεση εκτελεί κώδικα JavaScript που καλεί τοΥποβολήη μέθοδος, ο χρήστης λαμβάνει ένα "δεν επιτρέπεται Η πρόσβαση" δέσμες ενεργειών στο μήνυμα λάθους. Για παράδειγμα, postbacks για τα στοιχεία ελέγχου του διακομιστή Microsoft ASP.NET ενδέχεται να χρησιμοποιούν τοΥποβολήΗ μέθοδος.

Εναλλακτικός τρόπος αντιμετώπισης

Για να αντιμετωπίσετε αυτήν τη συμπεριφορά, ακολουθήστε τα εξής βήματα:
  1. Εάν μπορείτε να προσπελάσετε τον κωδικό που καλεί τοΥποβολήμέθοδος, χειριστείτε το σφάλμα δέσμης ενεργειών και ζητήσει από το χρήστη για να εισαγάγετε μια έγκυρη διαδρομή.
  2. Εμποδίζει το χρήστη να επεξεργαστείτε τα περιεχόμενα του πλαισίου κειμένου. Αυτό αναγκάζει αποτελεσματικά το χρήστη να κάνει κλικΑναζήτησηΓια να επιλέξετε τη διαδρομή του αρχείου. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το ακόλουθο παράδειγμα κώδικα, για να αποτρέψετε την επεξεργασία των περιεχομένων του πλαισίου κειμένου στον Microsoft Internet Explorer του χρήστη.
    <html>
    	<head>
    		<script language="javascript">
    		<!--
    function test()
    {
    	if( event.keyCode == 8 )
    	{
    		return false;
    	}
    	return true;
    }
    		-->
    		</script>
    	</head>
    	<body>
    		<form name="Form1" action="SimpleResults.aspx" method="post" ID="Form1">
    			<input id="txtFileUpload" onkeydown="return test();" onbeforeeditfocus="return false;" type="file" name="txtFileUpload" />
    			<p />
    			<input type="submit" value="Submit" ID="Submit1" NAME="Submit1" />
    		</form>
    	</body>
    </html>
  3. Για να δημιουργήσετε το δικό σας στοιχείο ελέγχου ActiveX για να παρέχουν αυτές τις λειτουργίες.

Κατάσταση

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

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

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

  1. Επικολλήστε το ακόλουθο παράδειγμα κώδικα σε ένα αρχείο που ονομάζεται Simple.html και, στη συνέχεια, αποθηκεύστε το αρχείο στο διακομιστή Web.
    <html>
    <head>
        <script language="javascript">
    function go()
    {
    	theform = document.Form1;
    	theform.submit();
    }
        </script>
    </head>
    <body>
        <form name="Form1" action="SimpleResults.aspx" method="post">
            <h2>This example demonstrates the change to the "input type=file" element in Windows XP SP2:
            </h2>
            <p>
                Note: You cannot put information in an "input type=file" element by using script code.  For more information, see the following article in the Microsoft Knowledge Base: <a href="http://support.microsoft.com/kb/266087">266087</a><br />
                <input id="txtFileUpload" style="WIDTH: 346px; HEIGHT: 20px" type="file" size="30" name="txtFileUpload" />
            </p>
            <p>
                1. Now, if you enter a path that is missing the drive letter and root folder in
                the text box part of the control, and&nbsp;then you click submit, the Submit method call will not
                be permitted.  Therefore, nothing will occur.<br />
                <input type="submit" value="Try to use a Submit button" />
            </p>
            <p>
                2. Also, if you enter a path that is missing the drive letter and root folder in the
                text box part of the control, and&nbsp;then you click a link that uses scripting to submit
                the form, you receive an "Access is Denied" scripting error message.<br />
                <a onclick="javascript:go()" href="#">This link causes the "Access is Denied" error message.</a>
            </p>
        </form>
    </body>
    </html>
  2. Επικολλήστε το ακόλουθο παράδειγμα κώδικα σε ένα αρχείο που ονομάζεται SimpleResults.aspx.
    <%@ Page Language="C#" %>
    <script runat="server">
        void Page_Load()
        {
            txtResults.Text = Request.Form["txtFileUpload"];
        }
    </script>
    <html>
    <head>
    </head>
    <body>
        <form runat="server">
            <p>
                Here are the results of submitting the contents of the "input type=file" element. 
            </p>
            <p>
                <asp:TextBox id="txtResults" runat="server" Width="469px"></asp:TextBox>
            </p>
        </form>
    </body>
    </html>
  3. Σε ένα πρόγραμμα περιήγησης ανοίξτε Simple.html.
  4. Στο πλαίσιο κειμένου που χρησιμοποιείται στοinput type = αρχείοτο στοιχείο, πληκτρολογήστε κάποιο κείμενο που δεν περιλαμβάνει C:\ ή μια διαδρομή παρόμοια.
  5. Κάντε κλικΥποβολή. Ειδοποίηση ότι δεν συμβαίνει τίποτα.
  6. Κάντε κλικΗ σύνδεση αυτή προκαλεί το μήνυμα λάθους "Δεν επιτρέπεται Η πρόσβαση".. Λαμβάνετε ένα μήνυμα λάθους "Δεν επιτρέπεται Η πρόσβαση" δέσμη ενεργειών.

Αναφορές

Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://msdn2.Microsoft.com/en-us/library/ms535263.aspx (http://msdn2.microsoft.com/en-us/library/ms535263.aspx)

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