2009-06-12 155 views
2

我试图嘲笑一个SSL HttpRequest,但我很难搞清楚如何在请求对象中将协议设置为HTTPS。 http://haacked.com/archive/2005/06/11/simulating_httpcontext.aspx为单元测试模拟SSL HttpRequest

有没有一种方法来设置要求SSL:我得到了来自菲尔哈克这里的例子开始了吗?

public class MockHttpRequest : SimpleWorkerRequest 
{ 
    private string _Host; 

    public MockHttpRequest(
     string appVirtualDir, string appPhysicalDir, string page, string query, TextWriter output, string host) : 
     base(appVirtualDir, appPhysicalDir, page, query, output) 
    { 
     if (string.IsNullOrEmpty(host)) 
     { 
      throw new ArgumentException("Host must be provided."); 
     } 

     _Host = host; 
    } 
} 

public static class UnitTestingHelper 
{ 
    public static HttpContext CreateMockHttpContext(string host, string page) 
    { 
     string appVirtualDir = "/"; 
     string appPhysicalDir = @"C:\Documents and Settings\user\My Documents\Workspace\Project\"; 
     string query = string.Empty; 
     TextWriter output = null; 

     MockHttpRequest request 
      = new MockHttpRequest(appVirtualDir, appPhysicalDir, "default.aspx", query, output, host); 

     // How to make the request HTTPS? 

     HttpContext context = new HttpContext(request); 

     return new HttpContext(request); 
    } 
} 

回答

1

我认为有某处HttpContext.Request一个IsSecureConnection属性,需要为真。