WebAPI预期登录过程的结果

时间:2013-10-13 18:10:12

标签: c# asp.net-web-api

我是WebAPI的新手,想了解这一点。假设用户正在尝试登录,登录过程应返回创建并存储在SQL数据库中的GUID“令牌”...或“电子邮件不存在”或“电子邮件仍在等待确认”。

假设输入是一个LoginName和Password,APIController返回的是什么,将TOKEN放在这个案例或那些消息的正确方法在哪里?

问题1:
什么应该是APIController方法SIGNATURE?
   ......一个有几个属性的类? 我应该如何将令牌返回给客户端?
   ...在标题内部或作为结果程序的一部分?

问题2:
用户被阻止了什么,我不应该返回HttpStatusCode.Forbidden或类似的东西吗?如果签名期望课程返回,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以定义包含所需所有结果信息的类。

public class ApiLoginResult
{
    public bool IsSuccess { get; set; }
    public string Message { get; set; }
    public string AccessToken { get; set; }
    public DateTime Expiration { get; set; }
}

您的方法签名可以定义包含状态代码和数据的HttpResponseMessage类型的返回。

public HttpResponseMessage Login(string username, string password)

要返回ApiLoginResult消息,请使用HttpRequestMessage.CreateResponse方法。

return Request.CreateResponse<ApiLoginResult>(statusCode, result);