我用Winforms编写客户端/服务器应用程序已有六年了,但我还没有进入Web领域(ASP.NET和Web服务)。鉴于就业市场已走过一段时间的方向以及我有一个基本的好奇心,我想参与编写网络服务,但我不知道从哪里开始。
我已经阅读了各种选项(XML / SOAP与JSON,REST vs ......好吧,实际上我不知道它叫什么,等等),但我不确定是什么类型的标准在决定使用其中一个时发挥作用。显然,我想利用我拥有的工具(Visual Studio,.NET框架等),而不是将自己束缚到仅针对特定受众(即以难以消费的方式编写服务)例如,来自Windows Mobile / Android / iPhone客户端。
为了记录,我的计划 - 目前 - 是使用WCF进行我的Web服务开发,但是如果可取的话,我愿意使用另一种.NET方法。
我意识到这个问题非常开放,所以它可能会被关闭,但这里有一些我想知道的事情:
我开始在我的服务中编写一个身份验证机制(存储在数据库中的简单用户名/密码组合以及带有GUID密钥的相应会话表),并且只需要在每次操作时传递该密钥(除了登录之外)当然),但我想确保我不是在这里重新发明轮子。但是,我也不想使用一堆机器用户帐户来混乱使用基本身份验证。我也认为Digest(当然还有Windows)身份验证需要一台机器(或AD)用户帐户。
答案 0 :(得分:0)
1 - > REST比SOAP更快(我认为)它使用HTTP本身,但我不认为它是安全的。 SOAP更重,在头,有效负载等周围发送SOAP数据包。
2 - >使用可以使用异步调用,但您可以像任何其他类一样对待它们,尽管没有任何状态。
3 - >由于我们面向公众的服务的性质,我们拥有自己的自定义安全Web服务,并将用户信任对象传递给每个方法,以确保用户经过身份验证,并具有权限。 (这是一个相当简单的解决方案,但是一个项目都是自己的)
4 - >请参阅3.虽然我确信必须有一些框架gubbins供您使用。如果每个人都在您的域中,我非常确定您可以将IIS配置为仅对这些用户进行身份验证。
对不起,这不是一个大规模详细的答案,就像我说的,如果你把问题分成4个部分,你可能会得到更好的答案。