我必須做一個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