如何在没有ASP.NET网站管理工具的情况下“启用/禁用角色”或“创建或管理角色”?我能够使用此工具为我的MVC3 Web应用程序创建用户/管理用户/启用用户等。但是,我想将此工具交给管理员以“创建/管理角色”,并且他们的工作站上没有安装Visual Studio。.NET网站管理工具
0
A
回答
1
你必须从你的控制器内部容易进入角色:
if (!Roles.RoleExists("Guest"))
Roles.CreateRole("Guest");
Roles.AddUserToRole(userName, "Guest");
所以,如果你只需要创建一个控制器和一个然后你可以制作你自己的工具。
当然,你会想限制访问:
[Authorize(Roles = "Admin, Super User")]
public class RolesController : Controller
{
}
1
您将需要创建使用ASP.NET成员资格提供程序的自己的管理工具。
或者,http://websitemanager.codeplex.com/的开源项目可能会有用。
+0
我将尝试按照Henk的建议创建自己的管理页面。谢谢! – rk1962
0
可能你应该“教育”他们如何编辑网站配置文件。仅在编辑的角色是不是即使他们正在编辑XML这样一个大问题,直接
1
这是我如何处理编辑用户和角色。
在我的控制器中,我有以下代码。不要介意IList你不需要它的伙伴。您需要在您的AccountController中对用户进行建模(假设您正在为您的用户帐户使用此功能)。
public ActionResult Edit(string UserName)
{
IList<Partner> partners = r.ListPartners();
MembershipUser user = Membership.GetUser(UserName);
UserProfile profile = UserProfile.GetProfile(user.UserName);
User model = new User();
model.UserName = user.UserName;
model.Email = user.Email;
model.ActiveAccount = user.IsApproved;
model.PartnerID = profile.PartnerID;
model.IsAdministrator = Roles.IsUserInRole(user.UserName, "Administrator");
model.IsApprover = Roles.IsUserInRole(user.UserName, "Approver");
model.IsContributor = Roles.IsUserInRole(user.UserName, "Contributor");
model.IsReporter = Roles.IsUserInRole(user.UserName, "Reporter");
IList<Partner> p = r.ListPartners();
ViewBag.Partners = new SelectList(p.AsEnumerable(), "PartnerID", "Name", model.PartnerID);
return View(model);
}
我后看起来像
//
// POST: /Account/Edit
[HttpPost]
public ActionResult Edit(User model)
{
MembershipUser user = Membership.GetUser(model.UserName);
UserProfile profile = UserProfile.GetProfile(model.UserName);
user.Email = model.Email;
user.IsApproved = model.ActiveAccount;
profile.PartnerID = model.PartnerID;
#region If Else Block for Role
if (Roles.IsUserInRole(model.UserName, "Administrator") && !model.IsAdministrator)
{
Roles.RemoveUserFromRole(model.UserName, "Administrator");
}
else if (!Roles.IsUserInRole(model.UserName,"Administrator") && model.IsAdministrator)
{
Roles.AddUserToRole(model.UserName, "Administrator");
}
if (Roles.IsUserInRole(model.UserName, "Reporter") && !model.IsReporter)
{
Roles.RemoveUserFromRole(model.UserName, "Reporter");
}
else if (!Roles.IsUserInRole(model.UserName, "Reporter") && model.IsReporter)
{
Roles.AddUserToRole(model.UserName, "Reporter");
}
if (Roles.IsUserInRole(model.UserName, "Contributor") && !model.IsContributor)
{
Roles.RemoveUserFromRole(model.UserName, "Contributor");
}
else if (!Roles.IsUserInRole(model.UserName, "Contributor") && model.IsContributor)
{
Roles.AddUserToRole(model.UserName, "Contributor");
}
if (Roles.IsUserInRole(model.UserName, "Approver") && !model.IsApprover)
{
Roles.RemoveUserFromRole(model.UserName, "Approver");
}
else if (!Roles.IsUserInRole(model.UserName, "Approver") && model.IsApprover)
{
Roles.AddUserToRole(model.UserName, "Approver");
}
#endregion
Membership.UpdateUser(user);
return RedirectToAction("ManageUsers", "Account");
}
希望这给你的,你需要做的事情的想法。我假设你可以用你的用户模型创建一个视图。
+0
感谢您的示例代码。 – rk1962
相关问题
- 1. 网站管理工具
- 2. 网站管理工具
- 3. 谷歌网站管理员工具
- 4. 客户网站管理工具
- 5. 网站管理工具在Visual Studio 2012
- 6. ASP.Net网站管理工具链接
- 7. 抓取Google网站管理员工具
- 8. 开发工具来管理网站
- 9. Asp.net网站管理工具错误
- 10. 404错误/网站管理员工具
- 11. Google网站管理员工具API python
- 12. 网站管理工具的错误
- 13. 网站管理员工具API
- 14. 网站管理工具未启动
- 15. App Engine +网站管理员工具
- 16. 网站管理员工具API和PHP
- 17. Asp.net网站管理工具与SqlCeMembership
- 18. IIS的网站管理工具
- 19. 谷歌网站管理员工具API
- 20. 谷歌网站管理员工具:网站地图不索引?
- 21. 谷歌网站索引(谷歌网站管理员工具)
- 22. 网站管理员工具网站地图提交
- 23. XML网站地图得到由网站管理员工具
- 24. Schema.org和网站管理员工具丰富的片段工具
- 25. 网络管理工具
- 26. 从ASP.NET网站管理工具列出并管理网页上的用户
- 27. 将ASP.NET网站管理工具功能带到网页
- 28. 将ASP.NET网站管理工具部署到网页上
- 29. 谷歌网站管理员工具报告奇怪的网址
- 30. 管理网站
我会尝试你的解决方案。谢谢! – rk1962
我试过你的解决方案,它工作。非常感谢! – rk1962
@ rk1962请问您是否愿意分享如何制作您自己的角色管理器工具的代码?我可以在我的种子方法中使用这个答案,但是我担心一旦这段代码被运到生产中会发生什么。 – Komengem