Jæÿ Pændyã

Jæÿ Pændyã

  • NA
  • 11
  • 733

Trying to get Roles to populate a checkboxlist

Feb 22 2017 4:31 PM
hi i am Trying to get Roles to populate a checkboxlist based on tutorial (https://weblogs.asp.net/scottgu/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASPNET-20-using-Windows-Authentication-and-SQL-Server)
but using Asp.net identity and c# 
 
My code: 
using CentretapCrmSystem.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CentretapCrmSystem.Pages
{
public partial class Removeroles : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!User.IsInRole("Admin"))
{
Page.Visible = false;
Response.Redirect("accessdenied.aspx");
}
}
catch (HttpException)
{
}
}
public void PopulateRoleList(string userName)
{
RoleList.Items.Clear();
var Usermanager = Context.GetOwinContext().GetUserManager();
var RoleManager = new RoleManager(new RoleStore(new ApplicationDbContext()));
string[] roleNames = null;
string roleName = null;
var roles = RoleManager.Roles.ToList();
var d= roles.ToArray();
roleNames = d;
foreach (string roleName_loopVariable in roleNames)
{
roleName = roleName_loopVariable;
ListItem roleListItem = new ListItem();
roleListItem.Text = roleName;
roleListItem.Selected = Usermanager.IsInRole(userName, roleName);
RoleList.Items.Add(roleListItem);
}
}
public void UpdateRolesFromList()
{
foreach (ListItem roleListItem in RoleList.Items)
{
var Usermanager = Context.GetOwinContext().GetUserManager();
var RoleManager = new RoleManager(new RoleStore(new ApplicationDbContext()));
string roleName = roleListItem.Value;
string userName = DropDownList1.SelectedValue;
bool enableRole = roleListItem.Selected;
if ((enableRole == true) & (Usermanager.IsInRole(userName, roleName) == false))
{
Usermanager.AddToRole(userName, roleName);
}
else if ((enableRole == false) & (Usermanager.IsInRole(userName, roleName) == true))
{
Usermanager.RemoveFromRole(userName, roleName);
}
}
}
protected void LookupBtn_Click1(object sender, EventArgs e)
{
PopulateRoleList(DropDownList1.SelectedValue);
UpdateBtn.Visible = true;
}
public void UpdateBtn_Click(object sender, System.EventArgs e)
{
UpdateRolesFromList();
PopulateRoleList(DropDownList1.SelectedValue);
}
}
}
 the problem with using asp.identy is i can no use roles.getallroles() mathod which returns roles in string[]. can you help me what should i use for roleNames to make my code work
and how to get all roles in string arry[] in identity