2017-06-10 2 views
0

私は個々のアカウントを持つASP.NETコアアプリケーションを持っています。 VS2017によって生成されるものに非常に似ています。テスト目的のために、私は[Authorize]アトリビュートをホームコントローラのAbout()アクションに配置します。私は期待どおりにログインページにリダイレクトされており、そのURLがhttp://localhost:5000/Account/Login?ReturnUrl=%2FHome%2FAboutであることもわかっています。ただし、POSTログインメソッドでは、ReturnUrlはnullです。私はアカウントコントローラ方法ログインしている:ASP.NETコアログインでReturnUrlがnullです

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<IActionResult> Login(LoginInputModel model) { 
... 
} 

私もまたは[FromQuery]せず、明示的にパラメータとしてReturnUrlを試してみました。すべての順列ではnullです。 `<形式:

+0

は、新しい使用しない使用していることを確認する必要があります{にreturnurl =場合、Request.QueryString [ "にreturnurl"]} @ Html.BeginFormに – hasan

答えて

1

あなたは

Html.BeginForm("Login", "Account", new {ReturnUrl = Request.QueryString["ReturnUrl"] }) 


[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<IActionResult> Login(LoginInputModel model, string ReturnUrl) { 
... 
} 
+0

ビューはtaghelpersで生成されましたasp-controller = "Account" asp-action = "Login" asp-route-returnurl = "@ ViewData [" ReturnUrl "]" method = "post"> '@ViewData [" ReturnUrl "]'を ' @ Model.ReturnUrl'それは働き始めた。正しい方向に私を指摘していただきありがとうございます! – Felix

+0

あなたの歓迎:) – hasan

関連する問題