c# - 如何在 Xamarin 的 api 控制器中使用异步方法
问题描述
我对 Xamarin 很陌生,通常在生产中使用它我会执行以下操作:
// GET: api/Jobs
public async Task<string> GetJobs()
{
return await db.GetAllJobsAsync();
}
我的问题是我想返回工程师的所有工作,所以我在我的数据访问层中有这个方法,然后使用我的 api 从它返回 json,但是我如何在我的 Jobs API 控制器中调用以下内容
/// <summary>
/// Get All Jobs Assigned to the work person.
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<string> GetAllJobsAsync(int Id)
{
string json;
using (FuelCallManagmentEntities _db = new FuelCallManagmentEntities())
{
var task = Task.Run(() => _db.Jobs.Where(w => w.EngineerId == Id).ToList());
List<Job> alljobs = await task;
json = JsonConvert.SerializeObject(alljobs, Formatting.Indented);
}
return json;
}
我的问题也是我是否应该返回 json 肯定不是那么安全,如果使用这种方式,保护密码的最佳方法是什么。
我希望我可以使用 azure,但这必须是我们公司的安全托管解决方案。
当我尝试运行上面的代码时,我也遇到了上述错误。
{"Message":"发生错误。","ExceptionMessage":"'ObjectContent`1' 类型未能序列化内容类型 'application/json; charset=utf-8' 的响应正文。","ExceptionType ":"S
解决方案
将您的方法重构为:
public async Task<IActionResult> GetAllJobsAsync(int Id)
{
using (var _db = new FuelCallManagmentEntities())
{
var alljobs = await _db.Jobs.Where(w => w.EngineerId == Id).ToListAsync();
return Ok(alljobs);
}
}
关于第二个问题;这是一个不同的问题,这在 SO 中是题外话......
据我所知,今天的标准是将密码保存在一种Hash-Salt
机制中。
该视频以非常好的方式解释了这种机制。
顺便说一句,您永远不应该返回密码或有机制来公开您存储的密码。
推荐阅读
- tensorflow - 使用 ExponentialDecay 调度器时在 TensorBoard 中可视化 learning_rate
- javascript - Array.prototype.filter 回调必须是一个函数 REACT NATIVE
- reactjs - 按第三个变量对数据点进行分组并在图例中显示组名
- julia - 解析或编译而不执行
- powerbi - 计算高层和部门级别的员工流失率
- php - Laravel 对不同颜色和大小进行分组
- css - css 动画 - 使页脚向上移动
- python - 使用 Python 将 Google 表格转换为带有 URL 的 CSV
- cardano - 将 ADA 转移到另一个钱包后,质押的 ADA 会发生什么
- python - 我对此python代码感到困惑