0

我正在使用 C#、.NET Framework 4.0 和 Entity Framework 4.4.0.0 开发 WCF RESTful Web 服务。

在 SQL Server 数据库上,我有一个包含用户的表,我想检查该表上是否存在发送登录名和密码的用户。

我有这个 URI: /users/{user_id}to GET a user using its UserId.

我想,我可以这样做:/users/login/{login}/password/{password}但我不知道这是否是正确的方法,因为登录名和密码是公开的。

如何检查是否存在具有相同登录名和密码的用户而不在 URI 上显示它们?(也许,,/users/login/{login}/password/{password}这是正确的方法)。

注意:密码是加密的。

4

2 回答 2

1

如果您正在构建一个 RESTful API,那么它实际上应该是无状态的——这意味着在每个请求上发送用户/密码或在每个请求上发送一个令牌。

您需要在 SSL 下运行该站点以确保其安全。您的用户/密码或令牌应该在标题中。对于一个简单的站点,我建议使用基本 HTTP 身份验证(如果您不知道它是什么,请用谷歌搜索)。您对用户名/密码进行 base64 编码,并将它们与每个请求一起发送。看看这里:

http://www.codeproject.com/Articles/149738/Basic-Authentication-on-a-WCF-REST-Service

还有一件事-我可能错了,因为我不知道您的项目的详细信息,但我认为您不需要“确认”服务。听起来你有这个是为了登录。我建议当用户登录时,你将他们引导到你的仪表板或登陆区域。如果此时用户未通过身份验证,则重定向到登录。

于 2013-11-11T12:43:00.273 回答
0

WCF (REST) 服务应该是无状态的。使用不同的身份验证方式。请参阅RESTful WCF 4 服务中移动客户端的用户身份验证和使用 RESTful WCF 和 Windows 窗体的用户/通过身份验证

于 2013-11-11T12:20:11.933 回答