当前位置:  开发笔记 > 后端 > 正文

ASP.NET MVC下的SSL页面

如何解决《ASP.NETMVC下的SSL页面》经验,为你挑选了4个好方法。

如何在基于ASP.NET MVC的站点中的某些页面上使用HTTPS?

史蒂夫桑德森有一个非常好的教程,如何在预览4上以干燥方式执行此操作:

http://blog.codeville.net/2008/08/05/adding-httpsssl-support-to-aspnet-mvc-routing/

预览5有更好/更新的方式吗?



1> Amadiere..:

如果您使用的是ASP.NET MVC 2 Preview 2或更高版本,现在可以使用:

[RequireHttps]
public ActionResult Login()
{
   return View();
}

但是,订单参数值得注意,如此处所述.


您也可以在控制器级别执行此操作.更好的是,如果您希望整个应用程序都是SSL,您可以创建一个基本控制器,为所有控制器扩展它,并在那里应用该属性.
或者你可以添加它是Global.asax GlobalFilters.Filters.Add(new RequireHttpsAttribute())中的全局过滤器MVC3;
不保证其他开发人员将使用您的派生控制器.您可以拨打一个强制HTTPS的电话 - 请参阅我的博客文章http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and -the-新使用AllowAnonymous-attribute.aspx

2> Simon_Weaver..:

MVCFutures具有'RequireSSL'属性.

(感谢Adam 在你更新的博文中指出这一点)

如果您希望http://请求自动成为https://,请将其应用于您的操作方法,并使用'Redirect = true':

    [RequireSsl(Redirect = true)]

另请参阅:仅限生产中的ASP.NET MVC RequireHttps



3> Luke Sampson..:

正如Amadiere所写,[RequireHttps]在MVC 2中用于输入 HTTPS 非常有用.但是,如果您只想对某些页面使用HTTPS,就像您所说的那样,MVC 2并没有给您任何爱 - 一旦将用户切换到HTTPS,他们就会被卡在那里直到您手动重定向它们.

我使用的方法是使用另一个自定义属性,[ExitHttpsIfNotRequired].当连接到控制器或操作时,如果出现以下情况,它将重定向到HTTP:

    请求是HTTPS

    [RequireHttps]属性未应用于操作(或控制器)

    请求是GET(重定向POST会导致各种麻烦).

这里发布的内容太大了,但您可以在此处看到代码以及其他一些细节.



4> Kevin LaBran..:

这是Dan Wahlin最近发表的一篇文章:

http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp-net-mvc-controllers.aspx

他使用ActionFilter属性.


这看起来是目前最好的方式.
推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有