2016-07-08 15 views
1

私のコントローラアクションの1つが認証を拒否していますが、その理由を理解できません。これは、Visual Studioでの標準的なMVC 5プロジェクトテンプレートからちょうど標準VerifyCodeアクションだし、それは次のようになります。AllowAnonymousはASP.NET MVC 5で断続的にしか動作しません

[AllowAnonymous] 
public async Task<ActionResult> VerifyCode(string provider, string returnUrl, bool rememberMe) 
{ 
    if (!await SignInManager.HasBeenVerifiedAsync()) 
    { 
     return View("Error"); 
    } 
    return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe }); 
} 

私のアプリケーションは、ユーザーせずに、このコントローラは、ログインし、それが戻ってログインするユーザーを送り当たるたびそれはAllowAnonymousで装飾されています。これとは対照的に、この標準コントローラの動作:

ログインユーザーなしで直接ヒットした場合は正常に動作します。バックログインページに私を送るためにこれらの原因の最初の二つの私のアプリケーションを叩く

// to see if it's down to the parameters 
[AllowAnonymous] 
public ActionResult VerifyCode() 
{ 
    return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false }); 
} 

// to see if it's down to the action name 
[AllowAnonymous] 
public ActionResult VerifyCod() 
{ 
    return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false }); 
} 

// to see if it's down to the viewmodel 
[AllowAnonymous] 
public ActionResult ForgotPassword() 
{ 
    return View(new VerifyCodeViewModel { Provider = "", ReturnUrl = "", RememberMe = false }); 
} 

ので、試してみて、何が起こっているかを把握する

は、私は次のテストの私のコントローラにアクションを追加しました。 3番目のボタンを押すと、ForgotPasswordビューが問題なくレンダリングされます。

私はカスタム認証フィルターを持っていません。ここで何が起こっているのでしょうか?

答えて

0

.vs/config/applicationhost.configファイルを確認し、次のセクションが拒否とtrueに設定されていることを確認します。

<section name="anonymousAuthentication" overrideModeDefault="Deny" /> 
<add name="AnonymousAuthenticationModule" lockItem="true" /> 
+0

彼らは説明されているように設定されます。 –

+0

コントローラー自体にはどのようなフラグが設定されていますか? –

関連する問題