40 lines
		
	
	
		
			985 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			985 B
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Security.Principal;
 | 
						|
 | 
						|
namespace ProjectTracker.Library.Security
 | 
						|
{
 | 
						|
  [Serializable()]
 | 
						|
  public class PTPrincipal : Csla.Security.BusinessPrincipalBase
 | 
						|
  {
 | 
						|
 | 
						|
    private PTPrincipal(IIdentity identity)
 | 
						|
      : base(identity) { }
 | 
						|
 | 
						|
    public static bool Login(string username, string password)
 | 
						|
    {
 | 
						|
      PTIdentity identity = 
 | 
						|
        PTIdentity.GetIdentity(username, password);
 | 
						|
      if (identity.IsAuthenticated)
 | 
						|
      {
 | 
						|
        PTPrincipal principal = new PTPrincipal(identity);
 | 
						|
        Csla.ApplicationContext.User = principal;
 | 
						|
      }
 | 
						|
      return identity.IsAuthenticated;
 | 
						|
    }
 | 
						|
 | 
						|
    public static void Logout()
 | 
						|
    {
 | 
						|
      PTIdentity identity = PTIdentity.UnauthenticatedIdentity();
 | 
						|
      PTPrincipal principal = new PTPrincipal(identity);
 | 
						|
      Csla.ApplicationContext.User = principal;
 | 
						|
    }
 | 
						|
 | 
						|
    public override bool IsInRole(string role)
 | 
						|
    {
 | 
						|
      PTIdentity identity = (PTIdentity)this.Identity;
 | 
						|
      return identity.IsInRole(role);
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
}
 |