2016-05-31 13 views
0

Aspnet Identity(SignInStatus.Success)を使用してログインが成功すると、MVCはデフォルトのアクションとビューのコード全体を調べますが、 。AspNet MVCは私に戻ってログインに戻ります。デフォルトビューをレンダリングした後

奇妙なことに、これは私のユーザーの役割の1つでのみ発生します。私は二つの役割、adminエディタを持っています。 管理者は問題ありません。 エディタ USEDが動作します。誰もが、問題は何ができるかを提案でき、または私はそれをデバッグすることができるか、それははるかに高く評価されるだろう場合

はここ

[Authorize(Roles = "Admin, Editor")] 
public ActionResult Index() 
{ ... 

...私のデフォルトのビュー認証コードです。私はレンガの壁に当った。右私は2つの異なるブラウザ上でそれを試してみた

@RenderSection("Scripts", required: false) 

あるレイアウトでカミソリの最後の行、右アクションコード、ビューコード、およびレイアウトコードによるエラーなしデバッガのステップ。私はそれが偽造トークンの問題かもしれないと思った。私は一度次のメッセージを受け取りました... "提供された偽造トークンは、現在のユーザーとは異なるクレームベースのユーザーのためのものです"。

しかし、これはデバッグ中に非常に多くのログイン試行が行われたことによる不具合に過ぎないと思います。私が実行している

... VS 2015 の.NET Framework 4.5.2 Microsoft.AspNet.Identity.Core、Microsoft.AspNet.Identity.EntityFramework、Microsoft.AspNet.Identity.Owinすべてのバージョン2.2.1

ご協力いただければ幸いです。

+0

デフォルトのビューコントローラ/認証コードを表示できますか? – Kamo

+0

AFAIK、期限切れのAntiForgeryTokenキーは、デフォルトの例外ハンドラをそのページに設定すると、ログインページにリダイレクトされます。コントローラを表示し、問題の原因となった関連コードを表示してください。 –

+0

Thanks @Kamo ActionResultメソッドの認証コードを追加しました。 – clayRay

答えて

1

、私のレイアウトは

@Html.Action(... 

使用して別のコントローラでアクションを呼び出したことをコントローラがそのクラス定義の上

[Authorize(Roles = "Admin")] 

を持っていました。

したがって、DotNetは(ビューとレイアウト全体のレンダリングコードを続けていたとしても)ログインページに戻ってくることを決めました。

@MarkHomerに感謝します。彼のコメントは私にこれを探す考えを与えました。

[Authorize(Roles = "Admin、Editor")]をクラス定義の上に置き、[Authorize(Roles = "Admin")]を管理者アクセスのみ必要な個々のアクションに対して設定しました。

0

ログインを成功させると、ユーザーをRedirectURLにリダイレクトする必要があります。このリダイレクト中にログインしたユーザーが存続したこと、またはリダイレクトされたURLに到達したことを確認しましたか。コントローラとビューは、エディタ役割を認可していても

関連する問題