在 C# WebApi 中修改 RequestUri

Modify RequestUri in C# WebApi

提问人:Jmartinez 提问时间:11/6/2022 最后编辑:Jmartinez 更新时间:11/7/2022 访问量:184

问:

我有一个 ASp.Net WebApi,我添加了 DelegatingHandler 来修改 requestUri。

我尝试了一些没有结果的例子,有可能吗?

我想加密 URL 的(客户端)解密 (WebApi) 部分。

在 WebApi 中,存在具有以下路由的控制器:

api/employee/getInfo/{name}/{lastname}/{date}

从我的 Web 客户端,我对 URL 执行 GET: http://localhost/api/employee/getInfo/jhon/smith/010525

在客户端拦截器中,我加密了 URL 的最后一部分(示例为 base64) http://localhost/api/employee/getInfo/amhvbi9zbWl0aC8wMTA1MjU=

然后在 DelegatingHandler 的 SendAsync 中,我想要的是将最后一部分解密到 还原到 webapi 的原始 URL 执行正确的 webapi 函数。

谢谢。

enter image description here

asp.net 加密 webapi sendasync delegatinghandler

评论


答:

0赞 Jmartinez 11/7/2022 #1

我做了下一个:

我向控制器添加了一条额外的路由 [路由(“api/employee/getInfo/{payload}”)] 在 webapi 中

在客户端侦听器中更改原始调用 http://localhost/api/employee/getInfo/jhon/smith/010525 自 http://localhost/api/employee/getInfo/EncryptedInfo

最后在 DelegatingHandler 中

解密并转换为 QueryString http://localhost/api/employee/getInfo?name=jhon&lastname=smith&date=010525

我不知道这是否是正确的方法,但目前正在起作用。 如果有人有更好和正确的解决方案,请分享。

谢谢。