如何通过Web API与Xamarin Forms根据用户名密码获取SQL Server表中ID
实现基于用户名密码获取用户ID(Xamarin + Web API + SQL Server)
需求与技术栈
- 需求:仅通过用户名和密码从对应的数据表中获取用户ID
- 技术实现:采用Xamarin跨平台框架,通过Web API作为中间层连接SQL Server数据库
Web API 控制器代码
这部分负责接收前端传递的用户名和密码,查询SQL Server中的AspNetUsers表,返回匹配的用户ID:
[HttpGet] [ActionName("XAMARIN_Login")] public IHttpActionResult GetId(string username, string password) { var result = db.AspNetUsers .Where(x => x.UserName == username && x.PasswordHash == password) .Select(x => x.Id) .FirstOrDefault(); return Ok(result); }
Xamarin 端 RestClient 代码
这部分负责调用上面的Web API接口,传递用户名和密码参数并获取返回的用户ID:
private const string WebloginUrl = "你的Web API接口地址/api/控制器名/XAMARIN_Login"; public async Task<string> GetUserIdAsync(string username, string password) { var httpClient = new HttpClient(); var queryString = $"username={Uri.EscapeDataString(username)}&password={Uri.EscapeDataString(password)}"; var response = await httpClient.GetAsync($"{WebloginUrl}?{queryString}"); if (response.IsSuccessStatusCode) { return await response.Content.ReadAsStringAsync(); } return null; }
实用提示
- 实际项目中不要直接传递明文密码,建议前端先对密码进行哈希处理(比如SHA256),再和后端数据库中存储的哈希值匹配,避免密码在传输过程中泄露。
- 确保Web API的接口地址配置正确,同时给Xamarin应用开启网络访问权限。
内容的提问来源于stack exchange,提问作者waqas waqas
相关产品推荐
相关产品推荐

