【问题标题】:Encrypt Url in MVC在 MVC 中加密 URL
【发布时间】:2016-01-29 06:44:01
【问题描述】:

在 MVC C# 中,我想加密 URL 控制器名称和视图名称。 每次用户登录时,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

【问题讨论】:

  • url: "/{rowid}/{operation}", 默认值: new { controller = "Home", action = "Index", rowid = RandomString(), operation = RandomString() } 你必须做这样的事情。我不完全了解 MVC。但基本思想只是给你的 rowid 和操作 RandomString 值。您的路线类似于:asdfasfasd/bhubibuj/somevalueforrowid/somevalueforoperation
  • 你为什么要这样做?

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


【解决方案1】:

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

Database selection before routing in ASP.Net MVC

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2015-12-21
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多