如何将一个Model中的某一个或几个参数传递给过滤器?

boyyao 2020-08-02 10:56:43
假设一个模型如下:
public class Input
{
public string UserName { get; set; }
public string Password { get; set; }
public string GUID { get; set; }
................
}
[ApiResponseFilter(UserName,GUID)] 这里要传递着两个参数给过滤器,不要整个Model
public async Task<ActionResult<Output>> PostLogin([FromBody] Input _Input)
{
//do.......
}

这个过滤器应该如何写?
过滤器不能传递整个Input。因为过滤器可能用于很多控制器。假设每个控制器都有input中的UserName和GUID,但其他参数不同


ps:是在 OnActionExecuting 中使用。。。所以不能在Login中赋值
...全文
478 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hui1202 2020-08-03
  • 打赏
  • 举报
回复
那我没明白啊,你input不用其他的值不就好了么。。这过滤了做啥,反正UserName和GUID相同,针对不同的方法使用参数就行了
  • 打赏
  • 举报
回复
你在过滤器中拦截、获取它啊
正怒月神 版主 2020-08-03
  • 打赏
  • 举报
回复
hui1202 2020-08-03
  • 打赏
  • 举报
回复
如果input作为通用的结构体,必然还是要覆盖所有参数的,使用的时候只传需要的参数应该足够满足你的需求
hui1202 2020-08-03
  • 打赏
  • 举报
回复
input里只要有你要的属性,作为api传过来的时候只传这2个就行了。重复提交这是验证幂等了吧
boyyao 2020-08-03
  • 打赏
  • 举报
回复
这里的username和guid只是作为一个例子。。 实际需求是正在做一套api。。每个api中都有提交相同的东西。比如token。。想用过滤器统一验证 还有根据guid+token等做重复提交的过滤。。。。由于是每个api都需要的操作。所以不想在api中操作。用过滤器代码可能简洁一点。。

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧