我讀http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api並試圖從該頁面使用的代碼工作:HttpResponseMessage不是在網絡API(.NET 4.5)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Http.Filters;
using System.Web.Http.Controllers;
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
base.OnAuthorization(actionContext);
}
}
}
當我建我沒有得到一個錯誤,但運行時給出了這樣的錯誤:
CS0012: The type 'System.Net.Http.HttpRequestMessage' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
我已經在我的項目的引用文件夾中引用了System.Net.Http。如果我看看它的屬性,它會顯示版本4.0.0.0和運行時版本4.0.30319。我的項目屬性說目標框架是.NET 4.5。
我在VS2013 Express中的智能感知也不想拿起任何與HttpResponseMessage或HttpRequestMessage有關的事情。
我試過刪除引用並重新添加它,但無濟於事。
任何幫助將非常感激。
不要忘記'system.web'和'assemblies'之間的'compilation'元素。 –