これは数時間の間これに固執していますので、いくつかの助けに感謝します!3つのログインが1つのログインページを使用しています
私は3つの役割を持ちたいと思っています。私のシステム上ですべてを行うことができる「スーパーユーザー」、特定のことを行うことができる「管理者」、一般的な「ユーザー」だけです。
「ユーザー」は、「管理者」または「スーパーユーザー」によって承認されるまで、システムにアクセスできません。
私は私のデータベースを設定して、すべての役割がのUserProfile、webpages_Membershipに沿って存在し、その他の役割は
私は、単一のログインページを持っていると思います。 3つの役割すべてがそこにログインできるようになりますが、すぐに登録してすぐにアクセスできる人には問題があります。 「ユーザー」の役割を割り当てるまで、ログインできるユーザーを制限する方法はありますか?ここで
は私のアカウントコントローラのログインです:
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password))
{
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
私は[承認]をいじるとUser.IsInRole(「ユーザー」)が、何も支援していないしてきました。
すべてのヘルプは大歓迎です!
認証されたが認証されていないユーザーをアカウントコントローラ経由で別のページに送信するにはどうすればよいですか? –
これは 'Authorize'属性を介して自動的に行われますが、手動で処理する場合や非常に特殊な処理を行う場合は、ユーザーが特定のロールに属しているかどうかを確認するだけです(' User.IsInRole( "Role") ' )、条件付きでそれに応じてリダイレクトします。独自のアクションフィルタ(通常は 'AuthorizeAttribute'から派生しています)を作成して、より多くのカスタム処理を行い、' Authorize'の代わりにそれらを使用することもできます。それはあなた次第です。すべてのツールがあります。それらを利用するだけです。 –
私は正直なところ、User.IsInRole( "役割")を試しましたが、それらのどれも私は何も得ていませんでした。私は自分のアクションフィルタを次に作成しようと考えています。助けてくれてありがとう。私がそれを理解することができれば、私はあなたに戻ってくるだろう。 –