コード例 #1
0
ファイル: Authentication.cs プロジェクト: jsabino/Arreceba
        /**
         * Metodo responsavel por verificar se o usuario possui registro para acesso ao web service
         * returns User Caso o login e senha passado seja valido
         * exception SecurityException Caso o login e senha nao seja valido
         */
        public static User Login(User user)
        {
            using (var db = new ArrecebaWSDb())
            {
                var query = from u in db.Users
                            where u.Login.Equals(user.Login)
                            where u.Password.Equals(user.Password)
                            select u;

                List<User> list = query.ToList<User>();
                if (list.Count > 0)
                {
                    user = list.ElementAt(0);

                    user.DateLastLogin = DateTime.Now;
                    db.Entry(user).State = EntityState.Modified;
                    db.SaveChanges();

                    return user;
                }
                else
                {
                    throw new SecurityException("Usuario ou senha invalidos");
                }
            }
        }
コード例 #2
0
ファイル: Authentication.cs プロジェクト: jsabino/Arreceba
        /**
         * Método responsavel por verificar se o usuario passado possui permissao para acessar um determinado servico
         *
         * O servico e identificado automaticamente atraves do metodo GetCalledMethod da classe Util
         * returns boolean
         * exception SecurityException Caso o usuario nao possua acesso
         */
        public static bool HaveAccess(User user)
        {
            using (var db = new ArrecebaWSDb())
            {
                string Module = null;
                string Method = null;

                Util.GetCalledMethod(out Method, out Module);

                Service service = (from s in db.Services where s.Method.Equals(Method) where s.Module.Class.Equals(Module) select s).SingleOrDefault();

                if (service == null) throw new SecurityException("Serviço não configurado!");

                var query = from u in db.Users
                            join p in db.UserProfiles on u.UserProfile.UserProfileId equals p.UserProfileId
                            where p.Services.Any(item => item.ServiceId == service.ServiceId)
                            where u.UserId.Equals(user.UserId)
                            select u;

                List<User> list = query.ToList<User>();
                if (list.Count > 0)
                {
                    return true;
                }
                else
                {
                    throw new SecurityException("Seu usuario nao possui permissao para acessar esta funcionalidade do sistema");
                }
            }
        }
コード例 #3
0
ファイル: SystemWS.asmx.cs プロジェクト: jsabino/Arreceba
 public UserProfile[] ListUserProfile(int ClientId)
 {
     ArrecebaWSDb db = new ArrecebaWSDb();
     return db.UserProfiles.Where(u => u.ClientId == ClientId).ToArray();
 }
コード例 #4
0
ファイル: SystemWS.asmx.cs プロジェクト: jsabino/Arreceba
 public Client[] ListClient()
 {
     ArrecebaWSDb db = new ArrecebaWSDb();
     return db.Clients.ToArray();
 }