我正在修改用C#MVC编写的系统。授权属性不使用角色MVC C#
我刚刚在管理员区域内建立了额外的功能,允许管理员创建具有有限管理员功能的用户帐户。我已经把以下在每个控制器的新功能:
[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");
}
发布你如何设置的角色会有所帮助。 – jfar 2010-11-30 16:00:35
会做,两秒钟。 – 109221793 2010-11-30 16:06:05