2013-12-20 19 views
0

我已采取此代码page。基本上,我试图要求所有请求SSL。这里是我的代码有:如何为web API要求SSL

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Net; 
using System.Web.Mvc; 
using System.Net.Http; 
using System.Web.Http.Controllers; 


namespace Test 
{ 
    public class RequireSSL : ActionFilterAttribute 
    { 
     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); 
      } 
     } 
    } 
} 

我面临的问题是我下OnAuthorization蓝色scr​​iggily线,说:“没有合适的方法重写”。不知道如何解决这个问题。有任何想法吗?

+0

尝试继承AuthorizeAttribute:http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.118).aspx –

回答

1

有RequireHttpsAttrobute你可以使用一个属性:RequireHttpsAttribute

+0

这可能是更好的方式来处理它 - 无需重新发明轮子。 – vcsjones

0

如果在例如仔细看,它是从AuthorizationFilterAttribute,不ActionFilterAttribute获得。如果你在你的例子中改变它,那么它编译正确。