尝试在 ASP.NET MVC 2 Preview 2 中将 [RequireHttps] 应用于 AccountController.Logon 时,出现以下错误:
ASP.NET 在 URL 中检测到无效字符。
这是因为 ASP.NET 重写了我的请求
http://example.com/admin
到
https://example.com/account/logon%3FReturnUrl=/admin
添加的是 ASP.NET 本身ReturnURL
(不是 ASP.NET MVC),但它RequireHttps
是重定向和弄乱 URL 的属性。
而%3F
不是?
打破页面。
我认为它在技术上是 ASP.NET 中的一个错误。有解决方法吗?我正在考虑一种处理 global.asax 中“未经身份验证”事件的方法 - 或者可能只是修复 RequireHttpsAttribute 的源。
[RequireHttps]
public ActionResult LogOn()
{
return View(DefaultModel);
}
<authentication mode="Forms">
<forms loginUrl="~/account/logon"/>
</authentication>
这是一个 类似但不同的问题
编辑:我刚刚尝试手动输入http://example.com/accout/login?cat=dog
,但它仍然重定向到无效的 URL : account/logon%3Fcat=dog
。我最初认为这与会员提供者之间的冲突有关,[RequireHttps]
但它看起来只是一个基本错误,所以我认为我必须自己修复源。