.NET Web API。使用用户名和密码验证客户端而不使用基本身份验证

时间:2013-02-05 14:35:51

标签: rest asp.net-web-api restful-authentication

我需要你的帮助。

我使用.NET Web API开发了一些REST服务。

这些服务必须使用用户名和密码验证客户端。

我在互联网上找到的解决方案是“基本身份验证”。

大问题是我不能使用SSL来保证通信安全。我没有HTTPS。

使用不带SSL的基本身份验证不是一个好的解决方案。

我无法在互联网上搜索找到可以使用用户名和密码通过http验证客户端的解决方案。

请你能帮帮我吗?

总结我需要使用用户名和密码在Web.API中验证用户身份。我不能使用SSL。我的通讯是在HTTP上。

感谢!!!

4 个答案:

答案 0 :(得分:0)

您可以使用ASP.NET成员资格提供程序:

http://msdn.microsoft.com/en-us/library/yh26yfzy(v=vs.100).aspx

答案 1 :(得分:0)

我知道的唯一其他常用的用户名+密码身份验证方法是digest access authentication。有一个博客here显示了WebApi的示例。

这将为您提供一些保护而不使用SSL,因为它使用哈希值;但是,在完全阅读并理解所有此方法的disadvantages之前,我不会真正提倡它。

答案 2 :(得分:0)

基本上 - 你做不到。

当然,有一种方案不会通过网络以明文形式传输凭据 - 但它不仅仅 有关凭据。所有的数据都是通过电汇进行清理,你没有服务器认证,没有机密性,没有完整性保护,没有重播保护等......

如果您不关心所有这些功能 - 为什么还要担心(安全)身份验证呢?

答案 3 :(得分:0)

没有SSL,基本不安全,但由于中间人攻击,摘要也不安全。我建议你使用一些基于公钥/私钥的方法,如HMAC或加密,就像paul所说的hash + salt。