【问题标题】:Hide function input parameters in C# web-service?在 C# Web 服务中隐藏函数输入参数?
【发布时间】:2011-09-13 17:56:46
【问题描述】:

我有一个关于是否可以隐藏网络服务方法的输入的问题。

假设第四个参数将密码作为输入,我们希望此输入仅在客户端使用。

该函数有 4 个输入参数,有什么方法可以保留该函数的所有输入参数,但在通过 Web 浏览器访问 .asmx 文件时使第四个参数不可见?这是为了消除试图访问服务并尝试输入随机数据的用户。

编辑:举个例子。

我们有一个 iPhone 应用程序,当用户使用某个功能时,一些参数与第四个参数一起发送到 Web 服务,该参数应包含某种密钥,以验证用户是否在实际的 iPhone 上使用应用程序,而不是访问试图访问数据的 Web 服务的人。

public someVariable someFunction(someVar parameter1,someVar parameter2,someVar parameter3,someVar parameter4)
{

    if (key.isMatch(parameter4))
    {

       The user is on an iPhone using the app : Proceeding.

    }
    else
       The user is not on an iPhone, cancelling function.

}

【问题讨论】:

    标签: c# web-services user-input


    【解决方案1】:

    您可以通过扩展 SoapExtension 并获取额外信息作为 soapheader 来防止从 webbrowser 调用您的方法,这些信息只能由最终用户应用程序发送

    看看这个Using SOAP Header and SOAP Extensions in a Web Service

    【讨论】:

    • @DeveloperX 你可能有一个指向我正确方向的 url,因为我非常不熟悉 C# 服务,因为我们的主要关注点是 iPhone 编程。真的很有帮助。
    • 我的意思是你可以在调用 web 服务时从 endu ser(Iphone app) 获得额外的信息,并且 web 服务总是期望这些额外的信息,当它不存在时你可以拒绝请求
    • 您在寻找非常简单的样本吗?
    • 问题提出来的压力很大,发生的事情是第四个参数根本不是用户输入的东西,它是从用户的 iPhone 生成的一个静态密钥,并与所有对服务的请求。并且我们希望隐藏 .asmx 文件中的输入参数,该文件可以从 Web 浏览器访问。
    • 你读过我放在这里的链接吗?它可以帮助您解决问题
    【解决方案2】:

    您使用的界面不应该用于测试以外的任何用途。

    如果您需要在生产中使用它,您应该实现自己的页面,这样参数 4 的 TextBox 将被屏蔽。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多