Я сейчас модифицирую систему, написанную на c # MVC.
Я только что добавил дополнительную функциональность в область «Администратор», которая позволяет администратору создавать учетную запись пользователя с ограниченными функциональными возможностями администратора.Я поместил следующее на каждый из контроллеров для новой функциональности:
[Authorize(Roles = "Administrator")]
Однако, если я войду в систему, используя ограниченную учетную запись администратора, и перейду на эту страницу, она пропустит меня.
Я в замешательстве, потому что я, кажется, делаю это правильно, но я также довольно новичок в MVC, есть ли что-то еще, что я могу проверить?Я ничего не изменил в файле web.config, так что все должно быть в порядке.
Я знаю, что выше ограниченная информация, не ищу готового решения, больше советов о том, что я могу проверить, чтобы исправитьпроблема.
спасибо
РЕДАКТИРОВАТЬ:
Так была создана новая роль / учетная запись.Иди спокойно, это первая попытка рва, проверки не так много.
[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");
}