/// <summary>
/// 自动认证 作者KAI
/// </summary>
public class Authentication : AuthorizeAttribute
{
/// <summary>
/// 自动认证
/// </summary>
/// <param name="actionContext"></param>
public override void OnAuthorization(HttpActionContext actionContext)
{
//actionContext当前请求的HttpActionContext 可以获取请求的内容
//actionContext.Response
//actionContext.Request
//actionContext.RequestContext
//也可以这样获取
//System.Web.HttpContext.Current.Request
//System.Web.HttpContext.Current.Response
if (true)
{
//成功以后不使用session如何把数据传到对应的Action 设置当前请求的User对象就行了 Action里面有User直接可以用
// HttpContext.Current.User = new UserModel() { loginUser = new_user }; //设置当前登陆人模型 UserModel是自定义模型
base.IsAuthorized(actionContext);
//认证成功调用 接下来会到具体的action里面运行
}
else
{
this.HandleUnauthorizedRequest(actionContext);
//认证失败调用
}
}
/// <summary>
/// 错误返回
/// </summary>
/// <param name="actionContext"></param>
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
JsonData jsonData = new JsonData();
jsonData.state = "400";
jsonData.message = "亲!你还没登陆哪";
actionContext.Response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(JsonHelper.ObjectToJSON(jsonData), Encoding.UTF8, "application/json")
};
}
}