我必须做一个IIS模块,阻止访问没有来自某个CA的证书的用户。 我做了一个CTL-证书信任列表。我使用netsh http add sslcert ip ....测试了它,它工作正常。 现在我所要做的就是在c#类库中实现netsh的调用。 我tryed使用方法:我可以从C#类库执行一个dos命令吗?
Process pnet = new Process();
pnet.StartInfo.FileName = "netsh";
pnet.StartInfo.Arguments = "http delete sslcert ipport=0.0.0.0:443";
pnet.StartInfo.UseShellExecute = false;
pnet.StartInfo.CreateNoWindow = true;
pnet.Start();
pnet.Close();
这工作在C#控制台应用程序,但在C#库类,不启动。
namespace IISproject
{
public class MyModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(OnPreRequestHandlerExecute);
}
#endregion
public void OnPreRequestHandlerExecute(Object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
HttpRequest request = app.Context.Request;
if (!String.IsNullOrEmpty(request.Headers["Referer"]))
{
throw new HttpException(403,
"Uh-uh!");
}
Process pnet = new Process();
pnet.StartInfo.FileName = "netsh";
pnet.StartInfo.Arguments = "http delete sslcert ipport=0.0.0.0:443";
pnet.StartInfo.UseShellExecute = false;
pnet.StartInfo.CreateNoWindow = true;
pnet.Start();
pnet.Close();
}
}
我到底做错了什么?10倍
“不启动”:你得到任何错误? (请参阅eventlog也许?)。请注意,控制台应用程序将运行在您的帐户下,而aspnet运行在低特权帐户下 - 这可能是您的问题。 – 2011-04-13 09:08:19