【问题标题】:Cannot pass the second parameter to the WCF service with two parameters无法将第二个参数传递给带有两个参数的 WCF 服务
【发布时间】:2023-04-02 12:57:01
【问题描述】:

我是 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 = new Login(); vlogin.UserName = 登录名.UserName; vlogin.Password = 登录名.Password; 返回 vlogin.UserLogin(); } }

我在这里面临的问题是,当我尝试执行它时,它只接受我的用户名。它不接受我的密码。密码不能作为输入给出。它只接受一个输入。因此,在执行此操作时,它总是返回 0,因为它没有匹配的密码。

我在这里执行的错误步骤是什么? 我应该怎么做才能传递密码?

【问题讨论】:

    标签: c# .net wcf soap service


    【解决方案1】:

    Password 不是[DataMemeber],每个属性都应该是DataContract 类的DataMember。 DataContract 将其定义为用于获取或设置数据的服务,因此 DataContract 的属性应为 DataMember

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 2013-12-09
      相关资源
      最近更新 更多