public override UserIdentity Authenticate(string mUserName, string mPassword) { user TempUser = _membershipProvider.AuthenUser(mUserName, mPassword); if (TempUser != null) { IList <role> TempRoles = TempUser.Roles.Where <role>(r => r.AppID == _membershipProvider.Application.AppID).ToList <role>(); IList <FanxiPermission> _FPList = new List <FanxiPermission>(); foreach (role r in TempRoles) { foreach (permission per in r.Permissions) { if (_FPList.Where(i => i.Name == per.name).Count() > 0) { continue; } string mObject = (per.ObjectRBAC != null) ? per.ObjectRBAC.name : ""; string mOperation = (per.Operation != null) ? per.Operation.name : ""; FanxiPermission _FP = new FanxiPermission(per.name, mObject, mOperation); _FPList.Add(_FP); } } return(new UserIdentity(TempUser.username, _FPList, TempRoles.Select(p => p.name).ToArray())); } else { return(null); } }
public override UserIdentity Authenticate(string mUserName, string mPassword) { Func <role, bool> predicate = null; user TempUser = _membershipProvider.AuthenUser(mUserName, mPassword); if (predicate == null) { predicate = delegate(role r) { return(r.AppID == this._membershipProvider.Application.AppID); }; } if (TempUser != null) { IList <role> TempRoles = (from r in TempUser.Roles where r.AppID == _membershipProvider.Application.AppID select r).ToList(); IList <permission> PerList = new List <permission>(); foreach (role r in TempRoles) { foreach (permission per in r.Permissions) { if (!PerList.Contains(per)) { PerList.Add(per); } } } IList <FanxiPermission> _FPList = new List <FanxiPermission>(); foreach (permission per in PerList) { string mObject = (per.ObjectRBAC != null) ? per.ObjectRBAC.name : ""; string mOperation = (per.Operation != null) ? per.Operation.name : ""; FanxiPermission _FP = new FanxiPermission(per.name, mObject, mOperation); _FPList.Add(_FP); } string[] RoleStrs = TempRoles.Select <role, string>(delegate(role r) { return(r.name); }).ToArray <string>(); //(from r in TempRoles select r.name).ToArray(); return(new UserIdentity(TempUser.username, _FPList, RoleStrs)); } else { return(null); } }
public override UserIdentity Authenticate(string mUserName, string mPassword) { Func<role, bool> predicate = null; user TempUser = _membershipProvider.AuthenUser(mUserName, mPassword); if (predicate == null) { predicate = delegate(role r) { return r.AppID == this._membershipProvider.Application.AppID; }; } if (TempUser != null) { IList<role> TempRoles = (from r in TempUser.Roles where r.AppID == _membershipProvider.Application.AppID select r).ToList(); IList<permission> PerList = new List<permission>(); foreach (role r in TempRoles) { foreach (permission per in r.Permissions) { if (!PerList.Contains(per)) PerList.Add(per); } } IList<FanxiPermission> _FPList = new List<FanxiPermission>(); foreach(permission per in PerList) { string mObject = (per.ObjectRBAC != null) ? per.ObjectRBAC.name : ""; string mOperation = (per.Operation != null) ? per.Operation.name : ""; FanxiPermission _FP = new FanxiPermission(per.name, mObject, mOperation); _FPList.Add(_FP); } string[] RoleStrs = TempRoles.Select<role, string>(delegate (role r) { return r.name; }).ToArray<string>(); //(from r in TempRoles select r.name).ToArray(); return new UserIdentity(TempUser.username, _FPList,RoleStrs); } else return null; }
bool CheckPermission(string _object, string _Operation) { FanxiPermission per = (from p in Permissions where (p.RbacObject.ToUpper() == _object.ToUpper()) && (p.RbacOperation.ToUpper() == _Operation) select p).Single(); return(per != null); }