在MVC中加密URL

时间:2016-01-29 06:44:02

标签: c# asp.net asp.net-mvc

在MVC C#中,我希望加密URL控制器名称和视图名称。 每次用户登录时,网址都应该不同。

我需要改变这个:

http://localhost:6065/Home/index

到此:

http://localhost:6065/aghef54df/sdf54512

如果用户下次登录,此加密文本应该更改。

我试图像这样更改routeconfig

routes.MapRoute(
        name: "Default1",
        url: RandomString() + "/" + RandomString() + "/{rowid}/{operation}",
        defaults: new { controller = "Home", action = "Index", rowid = UrlParameter.Optional, operation = UrlParameter.Optional }
        );

RandomString()将生成一个随机字符串。

但是下次用户登录时这不会改变。有没有办法获取sessionid并加密它并显示在URL?

或者在没有改变routeconfig的情况下还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

请参考以下堆栈溢出答案。它不会直接回答您的问题,但会解释您创建自己的路由处理程序所需的过程。您需要提取操作和控制器值,解密它们(使用您自己的密钥?),然后将它们添加回RequestContext,以便进行路由处理。希望这有帮助!

Database selection before routing in ASP.Net MVC