2015-08-07 2 views
0

Используя графический интерфейс диспетчера IIS, можно легко использовать представление дерева «Соединения» для перехода к приложению в разделе «Машинный ключ» в ASP.Net, а затем нажмите «Сгенерировать ключи» в порядке для генерации ключа для вашего приложения с целью настройки общего сеанса ASP.Net на компьютерах.Программно сгенерировать ключ приложения IIS

Однако, когда я прочитал документацию для Generate a Machine Key, единственное, что я получаю это загадочное

Используйте следующие классы WMI, методы или свойства для выполнения этой процедуры: класс

MachineKeySection , Ключи генерируются путем установки свойств, поэтому не требуются ни один метод.)

неверная пунктуация не повышает мое доверие, и я не знаю, как реализовать этот совет независимо. Как создать ключи проверки и дешифрования для моего приложения IIS через командную строку? Я также хочу сгенерировать их через C#.

ответ

0

Я думаю, вы могли бы использовать RNGCryptoServiceProvider класс для генерации необходимых ключей с помощью PowerShell. Это тот же самый менеджер IIS класса, который использует для генерации этих ключей.

Я узнал из this блог о том, как менеджер IIS использует этот класс.

С IIS 7 вам больше не придется делать это вручную. Менеджер IIS 7.0 имеет встроенную функцию, которую вы можете использовать для генерации этих ключей. Он использует RNGCryptoServiceProvider для создания случайного ключа.

Автор сообщения - сотрудник Microsoft. Я лично его не знаю.

Here - один из примеров использования его с использованием сценария PowerShell.

+0

Я уверен, что вы знаете, что в ответах StackOverflow принято учитывать сводку содержимого ссылки или основные моменты, которые конкретно отвечают на вопрос. Цель сайтов SE - стать ресурсом знаний, ответов на долгие годы. При ответе только на ссылку, op должен вырыть другой ресурс, чтобы найти ответ, который он/она может не знать. Самое главное, если ваша ссылка будет когда-либо ломаться, ваш ответ бесполезен для всех, кто посещает эту страницу в будущем. –

+0

Это хороший ответ, который я буду исследовать. Я бы очень хотел, чтобы это включало авторитетный источник, в котором говорится, что IIS использует этот класс. – sirdank

+0

@Jeremy Я еще не понял все правила сообщества - Спасибо за ваш вклад. Я согласен, что ссылки могут быть сломаны, но OP хотел создать сценарий генерации ключей. Я чувствовал, что менеджер IIS делает это, но интересный анекдот, а не основа всего ответа. Еще раз спасибо. –

0

Вы можете использовать класс ManagementClass из System.Management для подключения к WMI. Используя этот класс, вы можете манипулировать экземплярами WMI. Пожалуйста, следуйте указанным ниже действия:

  1. Создать новое консольное приложение.

  2. Добавить ссылку на сборку System.Management.

  3. Add используя заявление следующим

    using System.Management 
    
  4. Используйте ниже код для подключения к классу MachineKeySection.

    string NamespacePath = "\\\\.\\ROOT\\WebAdministration"; 
    
    string ClassName = "MachineKeySection"; 
    
    ManagementClass oClass = new ManagementClass(NamespacePath + ":" + ClassName); 
    
    foreach (ManagementObject oObject in oClass.GetInstances()) 
    { 
        Console.WriteLine("ApplicationName : {0}", oObject["ApplicationName"]); 
    } 
    
  5. Вы можете использовать следующие снимки экрана, чтобы проверить доступные свойства и методы. WMI Explorer

enter image description here

+0

Когда я запускаю это, 'oClass.GetInstances()' срабатывает, если я не администратор.Если я, то он возвращает пустой 'ManagementObjectCollection'. – sirdank

Смежные вопросы