项目使用MVC3开发,本来参数都是明文,访问地址可能是/Home/Index/?UserId=1
现在项目要求把参数进行加密,加密后的访问地址可能是/Home/Index/?VXNlcklkPTE=
也就是对参数进行Base64转码。
现在项目都做的差不多了,难道把所有的Controller都修改一遍?求解决方案。
10 回答
浮云间
TA贡献1829条经验 获得超4个赞
首先这个参数要加密的步骤是发生在客户端调用到服务器之间的传输过程中产生的,要加密的话你应该在js或者html页面中进行处理,根据我的经验来说没有一个一劳永逸的办法,因为这些地址都分布在各个html页面或者js文件中,只能一个一个的改。
慕斯王
TA贡献1864条经验 获得超2个赞
这个修改没什么作用的。
最简单的方法也无非就是把这些参数给统一的使用一个参数
比如/Home/Index?key=xxxxx
xxx为某个字符串对象。然后单独设置一个key的路由,然后自己实现下自己规则的IModelBinder。不过如果输入着绕开 还是没用的。
白板的微信
TA贡献1883条经验 获得超3个赞
支持使用 HttpModule 加解密都用一个就可以了
Private Sub Init(ByVal context As System.Web.HttpApplication) Implements IHttpModule.Init
' Set the handler for the PreRequestHandlerExecute event
AddHandler context.PreRequestHandlerExecute, AddressOf OnPreRequestHandlerExecute
' Set the handler for the PostRequestHandlerExecute event
AddHandler context.PostRequestHandlerExecute, AddressOf OnPostRequestHandlerExecute
End Sub
aluckdog
TA贡献1847条经验 获得超7个赞
加密的话 扩展UrlHelper 就可以加密了
解密的话 实现IRouteHandler的GetHttpHandler里边将参数进行解密
如上你action获取如果是通过模型绑定的话 就不用动了
当然输出加密参数的url通过扩展方法来做
- 10 回答
- 0 关注
- 318 浏览
添加回答
举报
0/150
提交
取消