Чтение проблемы с USB-накопителем - PullRequest
0 голосов
/ 16 сентября 2009

Я использую Visual Studio Team System 2008, C #, .NET 3.5, IIS 7.0 и ASP.NET. Я также использую Silverlight 3.0. Я хочу прочитать содержимое флэш-диска USB на стороне клиента, используя информацию на флэш-диске USB в качестве идентификатора профиля пользователя - так же, как служба интернет-банка использует ключ USB для хранения сертификата клиента (но мой требования безопасности не так высоки).

Как прочитать содержимое определенного файла на флэш-диске USB в веб-приложении (на стороне клиента)? Можем ли мы сделать это в Silverlight (если нет, какое-нибудь альтернативное решение для чтения содержимого флэш-диска USB)?

Кстати: я хочу читать содержимое автоматически и не хочу, чтобы пользователь вручную выбирал конкретный файл на флэш-диске USB для чтения.

Ответы [ 2 ]

7 голосов
/ 16 сентября 2009

Вы не можете сделать это в Silverlight. Вы можете прочитать файл на компьютере пользователя, но не без вмешательства пользователя. Модель безопасности, встроенная в Silverlight, этого не допустит.

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

Вы можете получить доступ к USB / флэш-накопителю, если вы используете консоль / приложение Windows Forms / WPF локально. Вы можете найти диски, используя класс DriveInfo, затем выполнить итерацию по ним или использовать запрос LINQ, чтобы найти диск, к которому вы хотите получить доступ. Подробнее см. Вопрос переполнения стека " Как найти букву USB-накопителя? ". Как только у вас есть путь, вы можете найти его для файла, который вы хотите. Вам не нужен специальный API или библиотека, ОС Windows рассматривает USB-накопитель как обычный накопитель, как «постоянный» жесткий диск, подключенный к вашей системе, и сделает всю грязную работу за вас на этом уровне. Просто используйте .NET I / O классы. Однако, если вы хотите получить доступ к диску независимым образом, не зависящим от какой-либо ОС, вам следует использовать стороннюю библиотеку.

1 голос
/ 16 сентября 2009

Я не думаю, что вы просите, возможно. Если это возможно IS , это страшно ... Разрешить веб-сайту захватывать вещи без вмешательства пользователя? Э-Э. Ни за что. \

Редактировать - Добавлено после прочтения комментария

Использование только стандартных рамок, нет. Поддержка USB не входит в стандартную комплектацию. Можно подумать, что в пространстве имен System.IO для USB-портов будут некоторые классы, как для COM-портов, но не повезло. Однако есть некоторые библиотеки, которые справятся с этим. Вот несколько ссылок, с которых можно начать.

http://weblogs.asp.net/israelio/archive/2005/08/15/422637.aspx

http://www.icsharpcode.net/OpenSource/SharpUSBLib/

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