Невозможно передать второй параметр службе WCF с двумя параметрами - PullRequest
1 голос
/ 12 июня 2019

Я новичок в приложениях службы WCF.Я следую за учебником.Там я пытаюсь передать имя пользователя и пароль и получить объект пользователя, возвращенный в этом конкретном объекте, если имя пользователя и пароль совпадают.

в моей папке App_code у меня есть следующий класс с именем Login.cs

public class Login
    {
        WindsForBusinessEntities001 newLogin = new WindsForBusinessEntities001();
        private string vusername;
        private string vpassword;

        public string UserName
        {
            get { return vusername; }
            set { vusername = value; }
        }
        public string Password
        {
            get { return vpassword; }
            set { vpassword = value; }
        }
        public string UserLogin()
        {
            var login = (from mstUser in newLogin.mstUsers where mstUser.userName == vusername && mstUser.password == vpassword select mstUser).Count() > 0;
            if (login)
            {
                return "1";
            }
            else return "0";
        }
    }

Здесь я использовал объект модели структуры сущности.В этом я проверяю имя пользователя и пароль с соответствующей записью в базе данных и возвращаю строку 1, если этот конкретный пользователь существует.

Следующий сегмент кода - это мой класс Iservice1.cs в моем проекте.

[ServiceContract]
    public interface Iservice1
    {
        [OperationContract]
        string  UserLogin(vlogin login);
    }
    [DataContract]
    public class vlogin
    {
        private string vusername;
        private string vpassword;
        [DataMember]
        public string UserName
        {
            get
            {
                return vusername;
            }
            set
            {
                vusername = value;
            }
        }
        public string Password
        {
            get
            {
                return vpassword;
            }
            set
            {
                vpassword = value;
            }
        }
    }

Это мой сегмент кода файла Service1.svc.cs.

открытый класс Service1: Iservice1 {открытая строка UserLogin (логин vlogin) {логин vlogin = новый логин ();vlogin.UserName = login.UserName;vlogin.Password = login.Password;return vlogin.UserLogin ();}}

Проблема, с которой я здесь сталкиваюсь, заключается в том, что, когда я пытаюсь выполнить ее, она принимает только мое имя пользователя.Он не принимает мой пароль.Пароль не может быть введен в качестве ввода.Он принимает только один вход.Поэтому при выполнении этого всегда возвращается только 0, поскольку у него нет соответствующего пароля.

enter image description here

enter image description here

Какой неправильный шаг я выполняю здесь?Что я должен сделать, чтобы передать пароль в этом?

1 Ответ

2 голосов
/ 12 июня 2019

enter image description here

Пароль не является [DataMemeber] , каждый атрибут должен быть DataMember класса DataContract. DataContract определяет его как сервис, который должен служить для получения или установки данных, поэтому атрибуты DataContract должны быть DataMember

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...