Tuesday, May 10, 2011

C# – Assigning multiple roles with Bitwise Operators

public partial class _Default : System.Web.UI.Page
{
public WebRoles Roles = WebRoles.Admin|WebRoles.Employee|WebRoles.Supervisor;
protected void Page_Load(object sender, EventArgs e)
{
// The user is employee and supervisor both.
WebRoles role = WebRoles.Employee | WebRoles.Supervisor;
bool isEmployee = (role & WebRoles.Employee) == WebRoles.Employee; // true
bool isSupervisor = (role & WebRoles.Supervisor) == WebRoles.Supervisor; // true
if(isEmployee && isSupervisor)
HttpContext.Current.Response.Write(“The Employee is Supervisor.”);
// This will check if the role of user is in the specified roles.
if (Roles != 0 && ((Roles & role) != role))
HttpContext.Current.Response.Write(“<BR>Invalid User.”);
}
}
[Serializable]
[Flags]
public enum WebRoles
{
Customer    = 1 << 0,
Employee    = 1 << 1,
Supervisor  = 1 << 2,
Admin       = 2 << 3
}

No comments:

Post a Comment