Я прочитал http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api и попытался использовать код с этой страницы:HttpResponseMessage не работает в Web 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 и Runtime Version 4.0.30319. Мои свойства проекта говорят, что целевая структура - .NET 4.5.
My IntelliSense в VS2013 Express также не хочет подбирать что-либо, связанное с HttpResponseMessage или HttpRequestMessage.
Я попытался удалить ссылку и повторно добавить ее, но безрезультатно.
Любая помощь была бы чрезвычайно оценена.
Не забудьте элемент 'compilation' между' system.web' и 'assemblylies'. –