我现在正在构建一个在服务器端使用asp.net webAPI的应用程序,我遇到了验证问题:
我想为多平台提供我的webAPI,就像浏览器的javascript或windows phone等等,所以我决定用HTTP-BASIC隐含验证,“(原谅我的英语不好),问题是,在过去的时间。
我总是在SESSION中获取一些用户信息,但是我们知道具有RESTful风格的webAPI是Session-stateless,所以如何存储用户的信息:
我有点想法,我希望你可以帮我做出正确的选择,很多
1。 将信息放入浏览器的cookie中,除了用户的密码和其他重要信息。每次我发出http请求时,我都会使用cookies。在服务器端,我可以查询用户的信息并做出其他步骤。(序列不能在moblie平台上运行,只在浏览器中使用cuz)
2.user HTTP-BASIC验证,每次服务器获取httpRequest时,它都会在HTTP-Headers中获取用户名和密码,服务器端也可以查询用户的信息。
答案 0 :(得分:2)
我见过的大多数REST API都是以下两种方式之一处理身份验证:
与基本身份验证不同,更多的Web API似乎正在迁移到第二种方法,因为它可以抵御篡改和重放攻击。当然,这更复杂。
对于OAuth来说,RFC 5849 Section 3.4在干读时会经历用于创建哈希的过程,如果您愿意,可能是实施的良好起点。 C#中的基本实现是provided on the OAuth Google Code site,可能是一个更好的选择。