webapi使用过滤器拦截客户端传来的参数
2021-02-07 13:15
标签:nat user 服务 用户名 getc override serialize mic uri 项目是前端和后端分离的,想在服务器上拦截客户端传上来的参数,然后做进一步处理,如:权限,验证是否登录,或者其他的 1.添加新类:OperationAttribute,用来做权限验证的 代码如下: 2.添加一个公共类,用来处理post参数 之所以要这样写,是为了防止过滤器重叠的时候,post提交获取不到参数。 写好过滤类之后,直接在方法,或者控制器上使用, [Operation]加在方法上,就可以验证方法的权限,加在控制器上,就可以验证控制器下所有的方法,若在控制中有不需要验证的方法,可以在OnActionExecuting上加上: if (actionContext.ActionDescriptor.GetCustomAttributes().Any()) 然后在不需要验证的方法上调用[AllowAnonymous], 如登录方法: 这样登录的方法就绕过了验证 webapi使用过滤器拦截客户端传来的参数 标签:nat user 服务 用户名 getc override serialize mic uri 原文地址:https://www.cnblogs.com/PiaoYu/p/11386295.html ///
public static class Common
{
///
{
return;
}, [AllowAnonymous]
[HttpGet]
public HttpResponseMessage Login(string UserName, string UserPwd)
{
string jsonresult = "";
Listobject> OperationResult = db.Login(UserName, UserPwd);
switch (OperationResult[0].ToString())
{
case "0":
jsonresult = "{\"State\":0,\"err\":\"10001\",\"info\":\"登录出错\"}";
break;
case "-1":
jsonresult = "{\"State\":0,\"err\":\"10002\",\"info\":\"密码错误\"}";
break;
case "-2":
jsonresult = "{\"State\":0,\"err\":\"10003\",\"info\":\"用户名不存在\"}";
break;
default:
User model = (User)OperationResult[1];
CommonTools.SessionHelper.SetSession("UserInfo",model);
jsonresult = "{\"State\":1,\"err\":\"10000\",\"info\":\"登录成功\",\"LoginInfo\":{\"UserInfo\":{\"UserName\":\"" + model.UserName + "\",\"UserId\":" + model.UserId + "}";
string jsonstr = OperationResult[2].ToString();
jsonresult += ",\"MenuInfo\":" + jsonstr;
jsonresult += "}}";
break;
}
HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonresult, Encoding.GetEncoding("UTF-8"), "application/json") };
return result;
}
文章标题:webapi使用过滤器拦截客户端传来的参数
文章链接:http://soscw.com/index.php/essay/52191.html