лучший способ получить серийный номер тома в приложении asp.net? - PullRequest
0 голосов
/ 20 сентября 2011

Я работаю над приложением ASP.Net, которое является веб-версией уже существующего настольного приложения winforms.Настольное приложение считывает файл лицензии, определяющий включенные функции, чтобы адаптировать его поведение.Чтобы заблокировать приложение на определенном компьютере, одним из параметров файла лицензии является серийный номер первого системного тома.При запуске приложение проверяет, совпадает ли серийный номер в файле лицензии с серийным номером тома.Получение серийного номера тома выполняется функцией GetVolumeInformation PInvoking kernel32.dll.
Однако в версии asp.net стандартный пул приложений, использующий локальную службу или локальную сетевую идентификацию, не имеет разрешения для PInvoke, что приводит к невозможностипроверить лицензионный файл действителен.Как я могу проверить лицензию при запуске приложения?

Я могу подумать о следующих альтернативах:

  • замена PInvoke методом, который не требует специальных разрешений для получения томасерийный номер (это в случае с WMI?)
  • , поместив весь код проверки лицензии в отдельную сборку и установив его в GAC, чтобы он выполнялся с повышенными правами
  • , создав пул приложений с администраторомличность только для моего приложения в процессе установки

Первое решение будет лучшим, но я не знаю, возможно ли это.
Есть ли у меня другие возможности?Каковы плюсы и минусы каждого метода?Какой из них лучший?

1 Ответ

0 голосов
/ 23 сентября 2011

Я предлагаю использовать WMI.Класс Win32_Volume имеет серийный номер тома.Вы можете использовать что-то вроде этого:

using System.Management;
SelectQuery query = new SelectQuery("Win32_Volume");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject obj in searcher.Get())
{
    Console.WriteLine("{0} {1}", obj["DriveLetter"], obj["SerialNumber"]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...