Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I'm using this configuration with SQL Server and MVC3.</p> <p>Web.config:</p> <pre><code>&lt;system.web&gt; &lt;roleManager enabled="true" defaultProvider="SqlRoleManager"&gt; &lt;providers&gt; &lt;clear /&gt; &lt;add name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider" connectionStringName="SqlRoleManagerConnection" applicationName="YourAppName" /&gt; &lt;/providers&gt; &lt;/roleManager&gt; </code></pre> <p>....</p> <pre><code>&lt;authentication mode="Windows" /&gt; </code></pre> <p>....</p> <pre><code>&lt;connectionStrings&gt; &lt;add name="SqlRoleManagerConnection" connectionString="Data Source=YourDBServer;Initial Catalog=AppServices;Integrated Security=True;" providerName=".NET Framework Data Provider for OLE DB" /&gt; &lt;/connectionStrings&gt; </code></pre> <p>To inicialize roles:</p> <p>Global.asax.cs</p> <pre><code>using System.Web.Security; //// protected void Application_Start() { //You could run this code one time and then manage the rest in your application. // For example: // Roles.CreateRole("Administrator"); // Roles.AddUserToRole("YourDomain\\AdminUser", "Administrator"); Roles.CreateRole("CustomRole"); Roles.AddUserToRole("YourDomain\\DomainUser", "CustomRole"); } </code></pre> <p>In your Controller</p> <pre><code>[Authorize(Roles ="CustomRole")] public class HomeController : Controller { </code></pre> <p>To manage users</p> <pre><code> public class Usuario { public string UserName { get; set; } public string RoleName { get; set; } public string Name { get; set; } public const string Domain = "YourDomain\\"; public void Delete() { Roles.RemoveUserFromRole(this.UserName, this.RoleName); } public void Save() { if (Roles.IsUserInRole(Usuario.Domain + this.UserName, this.RoleName) == false) { Roles.AddUserToRole(Usuario.Domain + this.UserName, this.RoleName); } } } </code></pre> <p>Users Class</p> <pre><code>public class Usuarios : List&lt;Usuario&gt; { public void GetUsuarios() //Get application's users { if (Roles.RoleExists("CustomRole")) { foreach (string _usuario in Roles.GetUsersInRole("CustomRole")) { var usuario = new Usuario(); usuario.UserName = _usuario; usuario.RoleName = "CustomRole"; this.Add(usuario); } } // public void GetUsuariosRed() //Get Network Users (AD) { var domainContext = new PrincipalContext(ContextType.Domain); var groupPrincipal = GroupPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, "Domain Users"); foreach (var item in groupPrincipal.Members) { var usuario = new Usuario(); usuario.UserName = item.SamAccountName; usuario.Name = item.Name; this.Add(usuario); } } </code></pre> <p>You can create an "Admin" controller like this, to manage the users:</p> <pre><code>[Authorize(Roles = "AdminCustomRole")] public class AdminController : Controller { // public ActionResult Index() { var Usuarios = new Usuarios(); Usuarios.GetUsuarios(); return View(Usuarios); } [HttpGet] public ActionResult CreateUser() { var Usuarios = new Usuarios(); Usuarios.GetUsuariosRed(); return View(Usuarios); } // </code></pre> <p>In my application, custom roles are fixed.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload