asp.net-mvc - 从 MVC 5 应用程序的 URL 隐藏参数(敏感信息)

标签 asp.net-mvc iis asp.net-mvc-5

我正在开发 Asp.Net MVC 5。当我单击链接(放置在另一个网站中)时,我导航到 UserDetails.cshtml 页面。 基本上,第 3 方网站将用户名和密码传递到我的网站,并使用我授权并显示更多用户信息。

没问题,但网址看起来像这样

localhost:8080//Admin/UserDetails/UserName/PWD.

我不想在 URL 中显示用户名和密码,即 URL 应类似于:

localhost:8080//管理员/用户详细信息/

一种可能的解决方案是在 IIS 中重写 URL (http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx)

但我相信有一种更简单的方法可以通过使用 MVC 的路由机制来处理这个问题。

请帮我解决同样的问题。

编辑: 由于你们中的许多人都感到困惑为什么我不在这里发布表单,让我重新构建我的问题。我无法控制第三方应用程序,因此我无法要求他们将表单发布到我的 MVC 应用程序。同样,第 3 方应用程序是 Oracle 报告应用程序 (OBI),因此从该应用程序执行 POST 可能也不可行...

最佳答案

让我根据您的问题对您的要求进行逆向工程:

I want to have an URI that when invoked will give access to a secured section of my website. This URI must be clicked by visitors of a third-party site, whom I give that URI to. I want to hide the credentials from the URI.

您不能这样做,要求是冲突的。您无法分发 URI 来验证向该 URI 发出请求的任何人。

您可以使用 token 执行某些操作(例如 http://your-site/auth/$token),但是任何有权访问该 URI 的人都可以使用它来验证自己的身份,或者干脆将其放在他们自己的网站上。

如果您有想要向第三方站点公开的数据,请让该站点在您的站点后台执行 HTTP 请求(使用 token 、用户名、 header 或您想要用于身份验证的任何内容),并显示他们网站上的回复。然后,访问者将不会看到该流量,也无法共享 URI,一切都将是安全的。

关于asp.net-mvc - 从 MVC 5 应用程序的 URL 隐藏参数(敏感信息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271186/

相关文章:

asp.net - 'm getting this error on my Facebook App tab - illegal tag “body”下的I“fb:tab-position”

c# - 填充 ViewModel 的正确方法?

asp.net - 在 PartialView 中获取当前的 ApplicationUser

JavascriptResult 将javascript 作为字符串放到页面中?

jquery - asp.net mvc jQuery $.post 有效,但 $.get 无效

ASP.NET 页面重定向列表

c# - 将 Jasig 的中央身份验证服务 (CAS) 与 ASP.NET MVC 一起使用 4/5

c# - DataContract 反序列化 XML - 同一元素中的元素和属性列表

c# - 为什么我不能在 MVC Controller 中使用 System.IO.File 方法?

asp.net-core - HTTP 错误 500.30(Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The system cannot find the file specified.)