[RequireHttps] を ASP.NET MVC 2 Preview 2 の 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]
単なる基本的なバグのように見えるので、自分でソースを修正する必要があると思います。