Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }