我有一些ASP .NET MVC4网站,我必须首先将它放到开发地点进行测试。开发网站没有SSL,但LIVE有它。
好。我必须在20个控制器中使用[Requirehttps]
,每次我在DEV网站上测试时都无法对它进行评论。
是否有任何方法可以至少根据某些web.config设置配置[Requirehttps],或者可能还有其他方法?我的意思是,每当我在LIVE上发布网站时,我都不想评论大约20 [Requirehttps]
。
有任何线索吗?
答案 0 :(得分:6)
重写RequireHttpsAttribute
的web.config
<appSettings>
<add key="SSL" value="false" />
</appSettings>
MyHttpsAttribute.cs
public class MyHttpsAttribute : RequireHttpsAttribute, IAuthorizationFilter
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (bool.Parse(AppSettings["SSL"]) != true) {
return;
}
base.OnAuthorization(filterContext);
}
}
BaseController
[MyHttps]
public abstract class BaseController : Controller
{
...
}
答案 1 :(得分:1)
如果您在调试/发布版本之间切换,可以在代码中执行此操作:
#if !DEBUG
[RequireHttps]
#endif