Загрузка файла с сервера для пользователя, вошедшего в систему как гость - PullRequest
0 голосов
/ 05 февраля 2010

У меня есть код, который позволяет загружать любые файлы с сервера на локальный хост.

Этот код работает нормально, когда я захожу как администратор, но когда я захожу как гость, он не позволяет мне скачать .. и я получаю сообщение об ошибке с надписью ..

Внешний компонент выдал исключение. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

 Exception Details: System.Runtime.InteropServices.SEHException: External component has thrown an exception.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Мой код выглядит следующим образом

string filepath = restoredFilename.ToString();

            // Create New instance of FileInfo class to get the properties of the file being downloaded
            FileInfo myfile = new FileInfo(filepath);

            // Checking if file exists
            if (myfile.Exists)
            {

                // Clear the content of the response
                Response.ClearContent();

                // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header
                Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name);

                //Response.AddHeader("Content-Disposition", "inline; filename=" + myfile.Name);
                // Add the file size into the response header
                Response.AddHeader("Content-Length", myfile.Length.ToString());

                // Set the ContentType
                Response.ContentType = ReturnExtension(myfile.Extension.ToLower());

                //// Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead)
                Response.TransmitFile(myfile.FullName);

                // End the response
                Response.End();
            }

Мне нужно скачать файл с помощью гостя .. пожалуйста, помогите спасибо

Трассировка стека:

[SEHException (0x80004005): External component has thrown an exception.]
   xyzgui.Guest.DriveContents.RestoreOneFileForGUI(Int32 machineID_Download, Int64 fileID, StringBuilder restoredFilename, UInt32 restoredFilenameBufsize) +0
   xyzgui.Guest.DriveContents.file_Click(Object sender, EventArgs e) in C:\Users\jagmit\Documents\Visual Studio 2008\Projects\xyzgui\xyzgui\Guest\DriveContents.aspx.cs:341
   System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +79
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

1 Ответ

0 голосов
/ 05 февраля 2010

Какой механизм аутентификации вы используете: формы или Windows?

Включено ли у вас олицетворение?

Я полагаю, что ошибка, которую вы видите, обычно выдается при возникновении проблемы с безопасностью, что, вероятно, звучит, когда вы говорите "когда я вхожу в систему как администратор".

Есть ли еще способ к RestoreOneFileForGUI, которого мы не видим - потому что похоже, что что-то создает исключение безопасности вне .NET - если это было так же просто, как гостевая учетная запись (учетная запись, на которой работает веб-сайт под) не имея доступа к пути к файлу, вы бы увидели стандартный SecurityException или UnauthorizedException из конструктора FileInfo .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...