WCF - 第三方应用程序身份验证

use*_*662 5 wcf-security

我目前正在开发一个iPhone应用程序.此应用程序回调通过我的ASP.NET Web应用程序公开的WCF服务.目前,我的WCF操作如下所示:

[OperationContract]
[WebInvoke(Method = "POST")]
public string SubmitMessage(string message, int priority)
{
  try
  {
    // Process message
    // Return success code | message
  }
  catch (Exception)
  {
    // Return error code | message
  }
}
Run Code Online (Sandbox Code Playgroud)

我的Web应用程序正在使用ASP.NET Forms Authentication.我的挑战是,我只希望经过身份验证的用户能够通过iPhone调用此操作.我知道iPhone SDK已经支持XML了.但是,我不确定如何锁定我的WCF操作,以便只有经过身份验证的用户才能访问它.

如何使我的WCF操作只能由来自第三方应用程序的经过身份验证的用户访问?

谢谢

Ali*_*Ali 0

这必须在传输的双方(即服务器(WCF 站点)和客户端(iPhone))上完成。

  • 如果您使用 SOAP 端点,那么您应该寻找 Objective-C SOAP 客户端库。这样,您所要做的就是根据您的需求设置最佳安全选项,并且您的服务器端代码将与目前几乎相同。

  • 相反,如果您公开为 RESTful 端点,我建议您寻找 OpenID(&OAuth) 方法。这里还提供 .NET 和 Objective-C 库。我相信这个解决方案需要在双方进行更多的编码。