我们有一个asp.net mvc2应用程序。我有默认路由设置来命中一个名为SecureRedirect的操作。当用户转到http://www.mydomain.com时,会调用默认路由,调用SecureRedirect操作,这样做很简单:
return redirect("https://www.mydomain.com/secure/showlogin").
请注意我是如何在操作中通过https调用网站的。这在我测试过的所有基于PC的浏览器中运行得非常好。它在我的iPhone和iPad上工作正常,但它不适用于像DroidX或三星Galaxy(基于Android)的平板电脑等Android设备。我正在记录SecureRedirect操作,我发现Android在iOS设备和PC浏览器上都没有动作。
这对我来说没有意义,因为这些Android设备正在运行WebKit,与iOS设备上的相同。
任何人都可以对此有所了解吗?我更愿意使用操作来处理重定向,而不是创建一个带有硬编码重定向到https的default.aspx页面。
答案 0 :(得分:0)
真的很难重现,但我会说两件事,以确保你真正的asp.net mvc方式。
假设您的控制器名为“secure”且安全控制器中的操作名为“showlogin”,
使用
重定向到您的操作public ActionResult SecureRedirect()
{
UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
return Redirect(u.Action("showlogin", "secure", null, "https"));
}
使用[RequireHttps]
属性装饰“showlogin”操作方法以确保https。像这样
[RequireHttps]
public ActionResult showlogin()
{
....
}
希望这会有所帮助