私は現時点では、c#MVCで書かれたシステムを変更しています。ロールで機能しない権限を許可するMVC C#
私は管理者が管理者の機能が制限されたユーザーアカウントを作成できるように、管理者エリアに追加の機能を追加しました。私は新しい機能のためのコントローラのそれぞれの上に、以下の置かれている:
[Authorize(Roles = "Administrator")]
しかし、私は限られた管理者アカウントを使ってログインし、このページに移動した場合、それは私を経由することができます。
これは正しい方法で実行されているようだが、私はMVCをかなり新しくしている。私はweb.configファイルで何も変更していないので、これは大丈夫です。
上記の情報が限られていて、既成の解決策を探していないことがわかっています。問題を解決するために何を確認できるかについてのアドバイスがあります。
おかげ
EDIT:
これは新しい役割/アカウントが作成された方法です。簡単に行ってください、これは最初の溝の試みですが、多くの検証はありません。
[Authorize(Roles = "Administrator")]
[HttpPost]
public ActionResult AddSalesManager(App.Web.Areas.Administrator.Models.SalesManager model, FormCollection formValues)
{
if (formValues["Cancel"] != null)
{
return RedirectToAction("Index");
}
if (!string.Equals(model.password, model.confirmpassword))
{
ModelState.AddModelError("password", "Password and Confirmation must match");
}
if (ModelState.IsValid)
{
using (ModelContainer ctn = new ModelContainer())
{
// First, create the user account inside the ASP.Net membership system.
//
Membership.ApplicationName = "App";
Roles.ApplicationName = "App";
if (!Roles.RoleExists("LimitedAdmin"))
Roles.CreateRole("LimitedAdmin");
// MembershipCreateStatus createStatus = MembershipService.CreateUser(model.email, model.password, model.email);
if (Membership.GetUser(model.email) == null)
{
Membership.CreateUser(model.email, model.password);
Roles.AddUserToRole(model.email, "LimitedAdmin");
}
}
}
return RedirectToAction("Index");
}
あなたは役割が役立つだろう設定方法を投稿します。 – jfar
2秒かかります。 – 109221793
ユーザーには複数のロールがありますか? – jfar