我已经阅读了很多关于ASP.NET MVC的问题[RequireHttps]- 但是找不到这个问题的答案:
[RequireHttps]如果不是https开始,如何使属性将URL切换为https?
我有这个代码:
public ActionResult DoSomething()
{
return View("AnotherAction");
}
[RequireHttps]
public ActionResult AnotherAction()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说:"所请求的资源只能通过SSL访问."
MVC期货项目具有类似的属性[RequireSsl(Redirect = true)].但现在已经过时了...... MVC 2中的等价物是什么?
当有人类型的网址http://example.com/home/dosomething或网址http://example.com/home/anotheraction,我需要他们被自动重定向到http 小号://示例.com /家/ anotheraction
编辑这是一系列事件:
从其他网站调用URL http://example.com/home/dosomething.他们将用户重定向到此网址(使用response.redirect或类似网址).
DoSomething()然后尝试返回AnotherAction(),但失败并显示错误消息"所请求的资源只能通过SSL访问".
今天首次部署到AppHarbor.在完成一些初步工作后,我成功部署了一个MVC3应用程序.
但是使用RequireHttpsAttribute存在问题.我注意到一开始http页面工作正常,但https页面收到网页有重定向循环的错误.
我的意思是要求整个应用程序使用https,所以我去了global.asax并添加了一个全局RequireHttpsAttribute过滤器.现在每个页面都在chrome和FF中获得重定向循环错误.
假设这与端口重定向在幕后有关.怎么解决?我需要自定义RequireHttpsAttribute吗?
我有一个ASP MVC 3网站,它有一个反馈表,应该要求SSL.
现在,我在名为"ContactUs"的控制器中有一个名为Feedback的操作,负责查看和处理反馈.
当我[RequireHttps]在该操作上使用该属性时,它运行良好,并将URL更改为"https".但是,我注意到我页面中的所有链接现在都指向"https"!好像这个属性迫使路由引擎将相同的内容应用到所有链接!
当然,只有这个单一动作才需要SSL,其余所有动作都需要正常的http.
谁能告诉我如何解决这个问题?
一旦您[RequireHttps]执行操作并且用户从HTTP切换到HTTPS,所有后续链接将保持HTTPS ...
有没有办法切换回HTTP?
我有一个ASP.NET MVC 3应用程序,其动作同时使用RequireHttps和OutputCache属性:
[RequireHttps]
[OutputCache(Duration = 14400, VaryByCustom = "CurrentUser"]
public ActionResult VersionB()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
当我导航到该页面时,我会按预期重定向到HTTPS.
但是,在初始页面加载之后,我仍然可以通过HTTP访问页面.如果我删除该OutputCache属性,我将无法再通过HTTP访问该页面.
似乎OutputCache忽略了HTTPS,因此允许对页面进行不安全的访问.是否可以缓存通过HTTPS提供的操作?
我有一些ASP .NET MVC4网站,我必须先把它放到开发地点进行测试.开发网站没有SSL,但LIVE有它.
好.我必须[Requirehttps]在20个控制器内部使用,每次我在DEV网站上测试时都无法对它进行评论.
是否有任何方法至少根据某些web.config设置配置[Requirehttps]或者可能还有另一种方法?我的意思是,[Requirehttps]每当我在LIVE上发布网站时,我都不想评论大约20个.
任何线索?
requirehttps ×6
asp.net-mvc ×4
ssl ×2
.net ×1
actionlink ×1
appharbor ×1
c# ×1
https ×1
hyperlink ×1
outputcache ×1