[AttributeUsage(AttributeTargets.Class)]
public class Permissions : Attribute
{
public enum PermissionType
{
Admin,
Consignor,
SuperConsignor
}
public Permissions(PermissionType[] pPermissionTypes)
{
this.PermissionList = pPermissionTypes;
}
public PermissionType[] PermissionList { get; set; }
}
{
protected override void OnPreLoad(System.EventArgs e)
{
base.OnPreLoad(e);
foreach (Attribute a in this.GetType().GetCustomAttributes(true))
{
if (a is Permissions)
{
Permissions ps = a as Permissions;
foreach (Permissions.PermissionType pt in ps.PermissionList)
{
switch (pt)
{
case Permissions.PermissionType.Admin:
CheckPermission("IsAdmin");
break;
case Permissions.PermissionType.Consignor:
CheckPermission("IsConsignor");
break;
case Permissions.PermissionType.SuperConsignor:
CheckPermission("IsSuperConsignor");
break;
default:
break;
}
}
}
}
}
private void CheckPermission(string input)
{
if (Session[input] == null)
{
Response.Redirect("Index.aspx");
}
else
{
if (!Convert.ToBoolean(Session[input]))
{
Response.Redirect("Index.aspx");
}
}
}
}
[Permissions(new Permissions.PermissionType[] { Permissions.PermissionType.Admin, Permissions.PermissionType.Consignor, Permissions.PermissionType.SuperConsignor })]
public partial class Default15 : PermissionCheckPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}