使用IIS管理器GUI,可以轻松使用' Connections'树状视图导航到一个应用程序,在ASP.Net下打开'机器密钥',然后点击生成密钥'为了在应用程序之间建立共享ASP.Net会话而为您的应用程序生成密钥。
然而,当我阅读Generate a Machine Key的文档时,我唯一得到的是神秘的
使用以下WMI类,方法或属性来执行此操作 过程:
MachineKeySection类。通过设置生成密钥 属性,所以不需要任何方法。)
不正确的标点符号不会增强我的信心,而且我不确定如何实施此建议。如何通过命令行为我的IIS应用程序生成验证和解密密钥?我也愿意通过C#生成它们。
答案 0 :(得分:0)
您可以使用System.Management中的ManagementClass类连接到WMI。使用此类可以操作WMI实例。 请按照以下步骤进行操作:
创建新的控制台应用程序。
添加对System.Management程序集的引用。
使用以下语句添加语句
using System.Management
使用以下代码连接到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"]);
}
您可以使用以下屏幕截图来检查可用的属性和方法。 WMI Explorer
答案 1 :(得分:0)
我猜你可以使用RNGCryptoServiceProvider
类使用PowerShell生成所需的密钥。它与IIS管理器本身用于生成这些密钥的类相同。
我从this博客了解到IIS管理器使用该类的方式。
使用IIS 7,您不再需要手动执行此操作。 IIS 7.0管理器具有内置功能,您可以使用它来生成这些密钥。它在内部使用RNGCryptoServiceProvider来创建随机密钥。
帖子的作者是微软员工 - 虽然我不认识他。
Here是使用PowerShell脚本方法的一个示例。