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; }
public CustomPrincipal(CustomIdentity identity) { _identity = identity; }