예제 #1
0
 private CustomIdentity PermissionFetch(Csla.Security.UsernameCriteria criteria)
 {
   CustomIdentity obj;
   using (var ctx = Csla.Data.ObjectContextManager<SecurityEntities>.GetManager("SecurityEntities"))
   {
     var q = (from r in ctx.ObjectContext.Users
              where r.Username == criteria.Username
              select r).FirstOrDefault();
     if (q != null)
     {
       q.Roles.Load();
       var roles = new List<string>();
       var permissions = new List<string>();
       foreach (var r in q.Roles)
       {
         roles.Add(r.Name);
         r.Permissions.Load();
         foreach (var p in r.Permissions)
           if (!permissions.Contains(p.Name))
             permissions.Add(p.Name);
       }
       obj = new CustomIdentity(q.Username, roles, permissions);
     }
     else
     {
       obj = new CustomIdentity();
     }
   }
   return obj;
 }
예제 #2
0
 public CustomPrincipal(CustomIdentity identity)
 {
   _identity = identity;
 }