EnVisageOnline/Main/Source/TimeTracker/WebSites/TimeTracker1/App_Code/Security/PageSecurity.cs

34 lines
1006 B
C#

using ASPNET.StarterKit.BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Caching;
using System.Web;
/// <summary>
/// Summary description for PageSecurity
/// </summary>
public class PageSecurity : System.Web.UI.Page
{
public static void CheckSecurity()
{
string pagename = Path.GetFileName(HttpContext.Current.Request.Url.AbsolutePath);
ObjectCache cache = MemoryCache.Default;
string userName = HttpContext.Current.User.Identity.Name;
MembershipAppUser u = cache[userName] as MembershipAppUser;
ControlSecurity c = ControlSecurity.GetPageSecurity(pagename);
int securitylevel = 0;
if (u != null)
securitylevel = u.SecurityLevel;
if (c != null)
{
if (!c.CanViewPage(securitylevel))
{
HttpContext.Current.Server.TransferRequest("~/TimeTracker/Dashboard.aspx");
}
}
}
}