tôi đọc http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api và cố gắng sử dụng mã từ trang đó:HttpResponseMessage không làm việc trong Api Web (.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);
}
}
}
Khi tôi xây dựng tôi không nhận được một lỗi, nhưng thời gian chạy cho lỗi này :
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'.
Tôi đã tham chiếu đến System.Net.Http trong thư mục tham chiếu của dự án của tôi. Nếu tôi nhìn vào các thuộc tính của nó, nó nói Version 4.0.0.0 và Runtime Version 4.0.30319. Các thuộc tính dự án của tôi nói khung đích là .NET 4.5.
IntelliSense của tôi trong VS2013 Express cũng không muốn nhận bất kỳ điều gì liên quan đến HttpResponseMessage hoặc HttpRequestMessage.
Tôi đã thử xóa tham chiếu và thêm lại tham chiếu nhưng không có kết quả.
Mọi trợ giúp sẽ được đánh giá cao.
Đừng quên phần tử 'biên soạn' ở giữa' system.web' và 'assembly'. –