我目前正在开发一个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操作只能由来自第三方应用程序的经过身份验证的用户访问?
谢谢
这必须在传输的双方(即服务器(WCF 站点)和客户端(iPhone))上完成。
如果您使用 SOAP 端点,那么您应该寻找 Objective-C SOAP 客户端库。这样,您所要做的就是根据您的需求设置最佳安全选项,并且您的服务器端代码将与目前几乎相同。
相反,如果您公开为 RESTful 端点,我建议您寻找 OpenID(&OAuth) 方法。这里还提供 .NET 和 Objective-C 库。我相信这个解决方案需要在双方进行更多的编码。