【发布时间】:2016-03-07 07:37:03
【问题描述】:
我在一个项目中工作,我必须访问后端服务以从 Android 客户端应用程序进行用户身份验证。因此,我创建了一个具有以下结构的 WCF REST 服务。
//<summary>
// Checks whether user is exists or not
// </summary>
// <param name="UserName"></param>
// <param name="Password"></param>
// <returns></returns>
[OperationContract]
[WebGet(UriTemplate = "IsUserExist/{UserName}/{Password}", ResponseFormat = WebMessageFormat.Json)]
bool IsUserExist(string UserName, string Password);
// <summary>
// Log the time of specified user
// </summary>
// <param name="UserName"></param>
[OperationContract]
[WebGet(UriTemplate = "LogTime/{username}", ResponseFormat = WebMessageFormat.Json)]
string LogTime(string UserName);
而且我已经成功地在 IIS 中部署了它。而且我可以轻松地从浏览器调用该服务来执行用户身份验证,效果很好。
http://localhost:9001/HNNDataSerivce/LogInService.svc/IsUserExist/Bob/pass123
http://localhost:9001/HNNDataSerivce/LogInService.svc/LogTime/Bob
并且此服务调用将所需的值分别返回为布尔值和字符串。
现在我想从 android 客户端进行相同的服务调用。为此,我创建了一个带有文本框和按钮的简单演示应用程序。用户在文本框中指定的用户名和密码以及当用户单击按钮时我要实现以下身份验证过程。
public void LoginButtonClick(View v) {
if(IsUserExist(UserName, Password))
LogTime(UserName)
else
// show invalid user message
}
【问题讨论】:
-
研究 android 的改造
-
附带一个问题:为什么 Login 方法称为 IsUserExists?
-
@cFrozenDeath 调用 IsUserExists 的原因是为了确保指定的用户是否存在于数据库中。如果存在,则调用 LogTime 函数记录日志的时间。