【发布时间】:2013-09-27 15:56:16
【问题描述】:
我正在尝试使用 Mike Wallace 的“RequireHttps”属性来强制某些控制器是否需要 SSL。
我有下面的代码,它构建得很好。但是当我真正去向控制器添加属性时,它失败了。
我有其他自定义属性出现,而我还有另一个没有出现。所以这可能是一个项目问题,虽然我尝试了一个新项目,但它仍然失败。代码在 app_code 文件夹中。
using System;
using System.Net.Http;
using System.Web.Http.Filters;
using System.Web.Http.Controllers;
namespace WebAPIService
{
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public RequireHttpsAttribute();
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);
}
}
}
}
欢迎提出任何建议。谢谢。
编辑:
我在 API 控制器上遇到的错误是: 找不到类型或命名空间名称“RequireHttpsAttribute”(您是否缺少 using 指令或程序集引用?)
【问题讨论】:
-
它失败的错误是?
-
找不到类型或命名空间名称“RequireHttpsAttribute”(您是否缺少 using 指令或程序集引用?)
-
您是否将
WebAPIService包含在使用RequireHttpsAttribute的代码文件中? -
是的,我已经添加了。 WebAPIService 实际上是项目的名称,所以无论如何都不需要
标签: c# asp.net visual-studio-2012 asp.net-web-api