【发布时间】:2017-10-27 08:03:28
【问题描述】:
我正在使用 asp.net 4.0 创建一个 web 服务。
我创建了一个 asmx 文件并创建了一个 User.cs 类。它有 8 个属性。 我返回了一个 json 格式的服务。 如果userlogin 为真我需要返回user.cs 的所有属性,如果失败我只需要返回2 个属性。
如何实现。
用户登录为真。它会全部返回
{"message":"有效用户","BranchId":1,"BranchName":"我的分支名称","Id":1,"Name":"admin","密码": "admin","RoleId":1,"Status":1}
用户登录失败,我只需要重新调整消息和状态。但它会像下面一样返回所有内容
{"message":"用户名或密码无效","BranchId":0,"BranchName":null,"Id":0,"Name":null,"Password":null,"RoleId": 0,"状态":0}
我用谷歌搜索并得到以下Link。如何根据我的登录状态使用它。
如果我在我的属性中使用了 [ScriptIgnore],它将忽略两种情况下的属性。登录失败时需要忽略属性。
我的属性是这样的
// Properties
public int BranchId
{
get { return _BranchId; }
set { if (_BranchId != value) { _BranchId = value; } }
}
public string BranchName
{
get { return _BranchName; }
set { _BranchName = value; }
}
private String _message;
public String message
{
get { return _message; }
set { _message = value; }
}
我的网络服务
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void appLogin(String userName, String passWord)
{
Admin_AppUserBLL objusr = Admin_AppUserBLL.GetAdmin_AppUserBLL(userName);
string strResponse = "";
if (objusr != null)
{
if (objusr.Password == passWord)
{
objusr.message = "valid username";
strResponse = new JavaScriptSerializer().Serialize(objusr);
}
}
else
{
objusr = new Admin_AppUserBLL();
objusr.message = "username or password is invalid";
strResponse = new JavaScriptSerializer().Serialize(objusr);
}
Context.Response.Clear();
Context.Response.ContentType = "application/json";
Context.Response.AddHeader("content-length", strResponse.Length.ToString());
Context.Response.Flush();
Context.Response.Write(strResponse);
}
【问题讨论】:
-
请检查here - 可能重复
标签: c# asp.net json web-services