gpt4 book ai didi

iphone - 保护 WCF REST 服务以用于 iPhone 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:05 24 4
gpt4 key购买 nike

我已经创建了一个简单的 WCF REST 服务,我打算从 iPhone 应用程序中使用它。该服务运行良好,但现在我想保护它。

在我的测试环境(Windows 7 上的 IIS)中,我已经使用 makecert.exe 设置了一个自签名证书。

我还覆盖了 validate() 方法,因此我可以使用自定义用户名和密码(因为 Windows 身份验证是不可能的)。

现在我被困了两天多,想弄清楚如何配置所有东西才能正常工作。

我现在的目标是能够通过浏览器执行简单的 GET 请求,例如:

https://localhost/testservice/service1.svc/sayHello

当这可行时,我将继续处理所有与 iPhone 相关的内容。

任何帮助/示例将不胜感激!

这是我的 web.config:

 <system.serviceModel>
<services>
<service name="IphoneWcf.Service1" behaviorConfiguration="IphoneWcf.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="webBehavior" contract="IphoneWcf.IService1">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<!--<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> -->
<host>
<baseAddresses>
<add baseAddress="https://localhost/iphonewcf" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">

</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="IphoneWcf.Service1Behavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpsGetEnabled="false" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<serviceCertificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="webBinding">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>

提前致谢!

最佳答案

另一种选择是为客户端身份验证创建另一个证书。我很确定 iPhone 支持 X509 证书。只需将您的配置更改为具有“证书”的客户端凭据类型。这适用于基本身份验证,但如果您想唯一标识每个客户端,您可能仍然需要自定义用户/名称密码。

关于iphone - 保护 WCF REST 服务以用于 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com