Web services Microsoft同步框架身份验证

Web services Microsoft同步框架身份验证,web-services,authentication,asp-classic,synchronization,Web Services,Authentication,Asp Classic,Synchronization,对于web应用程序和ASP,我是个新手 最近,我一直在尝试使用Microsoft Sync Toolkit通过OData web服务同步数据库 这里一个明显的问题是:一旦服务被设置和发布——因此它对任何知道URL的人都是开放的——如何防止未经授权的用户访问此服务 请注意:表单的基本身份验证-就我的一点web开发知识所知-似乎不适合此任务,因为它不是客户端试图访问的网页-页面可以显示/或重新引导登录请求-这是我们在此访问的服务 为了让事情变得更加困难,对于客户端同步,我使用了一个只接受服务URL的

对于web应用程序和ASP,我是个新手

最近,我一直在尝试使用Microsoft Sync Toolkit通过OData web服务同步数据库

这里一个明显的问题是:一旦服务被设置和发布——因此它对任何知道URL的人都是开放的——如何防止未经授权的用户访问此服务

请注意:表单的基本身份验证-就我的一点web开发知识所知-似乎不适合此任务,因为它不是客户端试图访问的网页-页面可以显示/或重新引导登录请求-这是我们在此访问的服务

为了让事情变得更加困难,对于客户端同步,我使用了一个只接受服务URL的第三方库/同步提供程序。因此,我认为我无法尝试将登录凭证合并到请求头中

我认为最好的办法是将登录凭据嵌入URL中,并将其用于第三方库

有人能告诉我如何在服务器上设置这样的东西吗?我更希望在服务器端代码的某个地方有一个地方,在那里我可以检查凭证,并根据凭证继续或中止(返回401)服务请求

我找不到任何地方可以将这些代码挂接到同步服务中。尽管MSDN中有人建议处理_OnBeginSyncRequest事件,但无法从该方法中访问web请求头

是否有可能从任何地方访问全局对象,我可以从中访问请求头?谁能帮我一下吗


最后,我更喜欢普通的用户/密码字符串对。它不一定(或者更确切地说)与windows或目录帐户有任何关系。我更喜欢在代码中简单地检查普通字符串,例如if(userStr==“Authenticated user”&&passwordStr==“Correct Password”)。

如果您使用的是SOAP web服务,您可以使用WS-Security usernametoken将用户名和密码添加到请求头中,否则,您可以在Web服务中添加用户名和密码作为参数,然后在服务器端对其进行验证。i、 e

而不是

bool SyncData(datatable)
它变成

bool SyncData(datatable, username, password)
注意:对于web服务,您将在每次调用时进行身份验证,如果您想在每次会话中进行身份验证,则首先需要使用用户名密码登录,然后检索一个令牌,而不是在每次后续调用时使用令牌对服务进行身份验证

您还可以使用SSL来保护通道,这样用户名和密码就不会以明文形式传输