无法将第二个参数传递给带有两个参数的 WCF 服务
Posted
技术标签:
【中文标题】无法将第二个参数传递给带有两个参数的 WCF 服务【英文标题】:Cannot pass the second parameter to the WCF service with two parameters 【发布时间】:2019-10-26 09:49:52 【问题描述】:我是 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,因为它没有匹配的密码。
我在这里执行的错误步骤是什么? 我应该怎么做才能传递密码?
【问题讨论】:
【参考方案1】:Password 不是[DataMemeber],每个属性都应该是DataContract 类的DataMember。 DataContract 将其定义为用于获取或设置数据的服务,因此 DataContract 的属性应为 DataMember
【讨论】:
以上是关于无法将第二个参数传递给带有两个参数的 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章
无法以 GET 类型的方法将字典作为参数传递给 WCF REST 服务