Comment puis-je "Activer/désactiver les rôles" ou "Créer ou gérer des rôles" sans l'outil d'administration de site Web ASP.NET? Je suis capable de créer l'utilisateur/gérer l'utilisateur/activer l'utilisateur etc pour mon application web MVC3 en utilisant cet outil. Cependant, je voudrais donner cet outil aux administrateurs pour "créer/gérer des rôles" et ils n'ont pas Visual Studio installé sur leurs postes de travail.Outil d'administration de site Web .NET
Répondre
Vous avez un accès facile aux rôles à l'intérieur de vos contrôleurs:
if (!Roles.RoleExists("Guest"))
Roles.CreateRole("Guest");
Roles.AddUserToRole(userName, "Guest");
Donc, si vous venez de créer un contrôleur et un couple d'Action + View, vous pouvez créer votre propre outil.
Et bien sûr, vous voulez limiter l'accès:
[Authorize(Roles = "Admin, Super User")]
public class RolesController : Controller
{
}
Vous devez créer votre propre outil d'administration qui utilise le fournisseur d'appartenance ASP.NET. Le projet open source http://websitemanager.codeplex.com/ peut également être utile.
Je vais essayer de créer ma propre page d'administration comme recommandé par Henk. Je vous remercie! – rk1962
Il se peut que vous deviez "éduquer" les utilisateurs sur la façon de modifier le fichier de configuration du site Web. simplement éditer les rôles ne sont pas un gros problème, même si elles sont XML éditant directement
Voici comment je traite avec les utilisateurs d'édition et des rôles.
Dans mon contrôleur j'ai le code suivant. Ne vous occupez pas des partenaires IList vous n'en aurez pas besoin. Vous voudrez modéliser un utilisateur dans votre AccountController (en supposant que vous l'utilisiez pour vos comptes d'utilisateur) avec les rôles.
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);
}
Mon poste ressemble
//
// 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");
}
Espérons que cela vous donne une idée de ce que vous devez faire. Je suppose que vous pouvez créer une vue ok avec votre modèle d'utilisateur.
Merci pour l'exemple de code. – rk1962
- 1. Outil d'administration de site Web
- 2. Outil d'administration de site Web ERREURS
- 3. .Net Multilanguage Site Web
- 4. administration Asp.net Site Web Outil avec SqlCeMembership
- 5. site Web php à aspx .net site Web
- 6. Outil de détection du langage de développement de site Web
- 7. Outil pour extraire des données financières d'un site Web?
- 8. Dreamweaver CS5 - outil de conception de site Web CSS
- 9. outil de test de perfomance pour un site web
- 10. outil de performance .Net
- 11. outil pour commencer la conception de site Web
- 12. ASP.net Membership Member Outil d'administrateur de site Web
- 13. Outil de manipulation d'image sur mon site Web
- 14. Adhésion à Asp.Net via ASP.NET Outil administrateur de site Web
- 15. Comment puis-je télécharger un site Web en utilisant .NET
- 16. Mappage d'URL dans le site Web .NET
- 17. Outil de portail Web
- 18. EC2 erreur d'installation d'un site Web .NET
- 19. outil le meilleur site Web pour Drupal Statistiques
- 20. shell outil qui rend le site web, y compris javascript
- 21. .Net Impression à partir d'un site Web?
- 22. Outil pour la numérisation du site Web pour les vulnérabilités
- 23. Outil pour optimiser le site Web pour l'iPhone
- 24. Outil Web Desgin Application ASP.NET
- 25. Site Web de référence
- 26. Site Web/Outil de création de balises automatiques pour n'importe quelle page Web
- 27. Programme de statistiques du site Web pour les sites Web IIS (.Net)
- 28. Outil de test de vulnérabilité de sécurité pour les applications Web .NET?
- 29. Outil de configuration de site ASP.Net
- 30. Outil pour spider site et rechercher 400 ou 500 erreurs?
Je vais essayer votre solution. Je vous remercie! – rk1962
J'ai essayé votre solution et cela a fonctionné. Merci beaucoup! – rk1962
@ rk1962 souhaitez-vous s'il vous plaît partager le code sur la façon de faire votre propre outil de gestion de rôle? Je peux user cette réponse dans ma méthode de graine mais je m'inquiète de ce qui se produirait une fois que ce code serait expédié en production. – Komengem