我对 Web 应用程序和 ASP 非常陌生。
最近,我一直在尝试使用 Microsoft Sync Toolkit 通过 OData Web 服务同步数据库。
这里明显的问题是:一旦服务设置并发布——因此它对任何知道 URL 的人开放——如何防止未经授权的用户访问该服务。
请注意:表单身份验证的基本身份验证 - 就我所知的少量 Web 开发知识而言 - 似乎不适合此任务,因为它不是客户端试图访问的网页 - 页面可以显示/或重定向登录请求 - 这是我们在此处访问的服务。
为了使事情变得更加困难,对于客户端同步,我使用了仅接受服务 URL 的 3rd 方库/同步提供程序。所以,没有办法(我认为)我可以尝试将登录凭据合并到请求标头等中。
我认为最好的选择是将登录凭据嵌入到 URL 中,并将其用于 3rd 方库。
有人可以指导我如何在服务器上设置这样的东西吗?我希望在服务器端代码的某个地方有一个地方,我可以检查凭据并根据它继续或中止(返回 401)服务请求。
我找不到将此类代码挂接到同步服务的任何地方。尽管 MSDN 中有人建议处理 _OnBeginSyncRequest 事件,但无法从该方法中访问 web-request 标头。
是否有一个可以从任何地方访问的全局对象,我可以从中访问请求标头?有人可以帮忙吗?
最后,我更喜欢普通的用户/密码字符串对。它不一定(或宁可不)与 Windows 或目录帐户有任何关系。我希望在我的代码中简单地检查纯字符串,例如 if(userStr == "Authenticated user" && passwordStr == "Correct Password")。