我们有一个MVC应用程序偶尔向我们发送一封错误电子邮件,声称有人试图在不使用安全连接的情况下访问它。
这是例外(匿名)的文本:
2015-10-04 19:13:19,092 ERROR NightsAndWeekends [(null)] - The requested resource can only be accessed via SSL.
HEAD method on http://oursiteurl.com/
Referrer = http://www.netcraft.com/survey/
IP = 159.203.65.232
System.InvalidOperationException: The requested resource can only be accessed via SSL.
at System.Web.Mvc.RequireHttpsAttribute.HandleNonHttpsRequest(AuthorizationContext filterContext)
at System.Web.Mvc.RequireHttpsAttribute.OnAuthorization(AuthorizationContext filterContext)
at SmartUsageWeb.ActionFilters.ConfigRequireHttpsAttribute.OnAuthorization(AuthorizationContext filterContext) in C:\filepath\ActionFilters\ConfigRequireHttpsAttribute.cs:line 19
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
我们有一个特殊的ActionFilter来处理授权步骤,如果我们的web.config中没有特定的密钥,那么会将其短路(所以我们可以在没有SSL证书的情况下在本地进行测试),但我已经确认安全性已在服务器上打开。
当我们访问指定的网址(常规的http://网址)时,它会正确地将我们重定向到https://路径,并且不会生成错误的电子邮件。
我该怎么做才能防止此异常?