:MVC 3 - FormsAuthentication - Can't give access to my Login actionASP.NET MVC3フォーム認証では、ポストは、ログオンアクションすることはできません。この投稿への同様
私はログオンアクションのポストハンドラにユーザー名/パスワードを送信するために私のフォームを取得できませんよ。しかし、私のAccountControllerは、デフォルトのコントローラ、つまり[Authorize]
-attributeから継承しています。マイアカウント・コントローラは、次のようになります。
[HttpGet]
public ActionResult LogOn()
{
return View();
}
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl = null)
{
...
}
そして、私のweb.configファイルには、とりわけ、含まれています
<location path="Account">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<authorization>
<deny users="?" />
</authorization>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" defaultUrl="~/Home/Index" />
</authentication>
ログイン・フォームを送信すると、それはすぐにLogOn-の[HttpGet]
バージョンに私をリダイレクトしますアクション。私は決してPOST版に向けられません。私は<authorization>
すべてが正常に動作します
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/LogOn?ReturnUrl=%2f">here</a>.</h2>
</body></html>
をコメントアウトした場合:上記の記事で述べたように、私は同じ応答を取得します。しかし、その場合、承認が必要なページへのディープリンクを入力すると、ログオンページにリダイレクトされません。
また、「アカウント」の場所を追加してすべてのユーザーを許可しようとしましたが、これは効果がないようです。
誰かが間違っていることを指摘できますか?フィドラーで
EDIT
私はいつもこのパターンを参照してください。
# Result Protocol Host URL Body Caching Content-Type Process Comments Custom
1 302 HTTP localhost:36372/ 145 private text/html; charset=utf-8 iexplore:6400
2 200 HTTP localhost:36372 /Account/LogOn?ReturnUrl=%2f 4,752 private text/html; charset=utf-8 iexplore:6400
なぜ最初のURLは常に/
のですか?
EDIT2
生成されたHTMLを確認するために私に起こった、そして私の驚きに、それは次のようになります。
<form action="/" id="LogOnForm" method="post">
明らかに、これは正しい行動ではありません。 ASPコードは次のようになります。
@using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { id = "LogOnForm" }))
そして、私のルートは次のようになります。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
);
私の記事で述べたように、私はすでにそれを試みましたが、効果はありませんでした。 – Pieter
web.configのformsAuthenticationと一緒に、アカウント/ログオン用のロケーションタグを貼り付けることができますか?ウェブ。上記の設定は「アカウント」の場所のみですが、アカウント/ログオンに一度変更することはできますか? – Sachin
投稿を読んだ後に試しましたが、効果はありません。おそらく、これは問題ではないでしょう。私の編集を参照してください。 – Pieter