Я сейчас изменяю систему, написанную в 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 2010-11-30 16:00:35
сделаю, 2 секунды. – 109221793 2010-11-30 16:06:05