首页 新闻 会员 周边

MVC3中的参数加密

0
悬赏园豆:100 [已解决问题] 解决于 2013-01-12 19:38

项目使用MVC3开发,本来参数都是明文,访问地址可能是/Home/Index/?UserId=1

现在项目要求把参数进行加密,加密后的访问地址可能是/Home/Index/?VXNlcklkPTE=

也就是对参数进行Base64转码。

现在项目都做的差不多了,难道把所有的Controller都修改一遍?求解决方案。

Soar、毅的主页 Soar、毅 | 菜鸟二级 | 园豆:299
提问于:2013-01-09 16:49
< >
分享
最佳答案
0

不知道httpmodule可不可以做到,应该也许可以做到吧,你试试?

收获园豆:50
xujif | 菜鸟二级 |园豆:304 | 2013-01-10 11:04
其他回答(8)
0

你修改的同时,还要关注一下你的url route是不是满足你修改后的要求。其实个人觉得你这样加密什么的,真的没有必要

收获园豆:10
chenping2008 | 园豆:9836 (大侠五级) | 2013-01-09 17:02
0

那应该 要改,要不 就写个Filter加载所有的 Controller上,统一转换或者类似IHttpModule

收获园豆:7
Qlin | 园豆:2403 (老鸟四级) | 2013-01-09 17:26
0

首先这个参数要加密的步骤是发生在客户端调用到服务器之间的传输过程中产生的,要加密的话你应该在js或者html页面中进行处理,根据我的经验来说没有一个一劳永逸的办法,因为这些地址都分布在各个html页面或者js文件中,只能一个一个的改。

收获园豆:7
az235 | 园豆:8483 (大侠五级) | 2013-01-09 17:38
0

这个加密没任何的效果..你用HTTPS吧

收获园豆:5
56180825 | 园豆:1756 (小虾三级) | 2013-01-09 20:55
0

给id加个路由约束,就行了

收获园豆:7
Yu | 园豆:12980 (专家六级) | 2013-01-09 22:07
0

支持使用 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
收获园豆:7
gunsmoke | 园豆:3592 (老鸟四级) | 2013-01-11 05:10
0

楼主有好的解决方案没啊,求帮忙啊,谢谢

海之澜 | 园豆:248 (菜鸟二级) | 2013-03-02 23:44
0

加密的话  扩展UrlHelper 就可以加密了   

解密的话 实现IRouteHandler的GetHttpHandler里边将参数进行解密

如上你action获取如果是通过模型绑定的话 就不用动了

当然输出加密参数的url通过扩展方法来做

mushishi | 园豆:230 (菜鸟二级) | 2015-02-09 14:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册