//Function: initialize a concrete user, return it as use of this session, if the user is valid
        //Paramaters:
        //Return: concrete user type, (Customer or Manager)
        //    null when the user is invalid
        //用户身份验证,根据名字密码查数据库,合法的话,返回出manager或者customer
        //不合法返回NUll
        public static User Login(string pName, string pPwd)
        {
            User user = null;
            DataContextDataContext dc = new DataContextDataContext();
            bool? isValid = false;
            ISingleResult<is_valid_userResult> rs = dc.is_valid_user(pName, pPwd, ref isValid);

            if (isValid == true)
            {
                foreach (is_valid_userResult s in rs)
                {
                    if (s.type == 1)
                    {
                        user = new Customer(s.name, s.pwd, s.mail);
                    }
                    else if (s.type == 2)
                    {
                        user = new Manager(s.name, s.pwd, s.mail);
                    }
                    else
                    { }

                }

            }
            else //invalid
            {}
            return user;
        }