我正在使用MVC 1.0并创建了一个“RequireSSLAttribute”(类似于ASP.NET MVC 1.0 Futures中的那个但忽略了本地计算机的SSL指令).我想通过SSL启用注册和登录页面来保护正在发送的密码.但是,我希望网站的其余部分不是SSL.
通过将[RequireSSL]属性添加到我的控制器的注册和登录方法,我能够成功地使应用程序通过HTTPS重定向到相应的页面.但是,注册或登录后的所有页面都将继续使用SSL.
有没有办法让应用程序切换回HTTP而不必创建一个“RequireNonSslAttribute”,我必须添加到所有其他控制器方法?
谢谢.
解决方法
如果您只是将其添加到登录后重定向到的控制器操作,该怎么办?或者在基本控制器中添加重定向.例如,我们在OnActionExecuting基础上做了类似的事情:
if (req.IsSecureConnection && filterContext.RouteData.Values["controller"] .ToString().ToLower() != "home") { string url = req.Url.ToString().ToLower().Replace("http:","https:"); res.Redirect(url); }
这是我们完成基本相同的事情的最快方式(我们的家庭控制器有登录类型的操作).