首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTful WCF数据服务认证

RESTful WCF数据服务认证
EN

Stack Overflow用户
提问于 2010-06-14 20:33:11
回答 3查看 2.2K关注 0票数 4

我想实现一个REST到一个现有的ASP.NET MVC网站。我已经成功地设置了WCF数据服务,以便浏览我的数据,但现在的问题是如何处理身份验证。

现在,通过站点内置的表单身份验证来保护数据服务,这在从AJAX表单访问服务时是可以的。但是,对于RESTful api来说,这并不理想。

作为表单身份验证的替代方案,我想让用户简单地将用户名和密码嵌入到web服务的url或请求参数中。

例如,如果我的web服务通常可以访问

代码语言:javascript
复制
http://localhost:1234/api.svc

我希望能够使用url访问它。

代码语言:javascript
复制
http://localhost:1234/api.svc/{login}/{password}

因此,我的问题如下:

  • 这是一种理智的方法吗?
  • 如果是,我如何实现这一点?

重定向GET请求似乎很简单,因此将登录和密码附加为GET参数。我还知道如何检查http上下文,并使用这些参数来筛选结果。但我不确定是否/如何将同样的方法应用于发布、放置和删除请求。我可以在POST、PUT和DELETE请求中使用GET参数吗?

编辑:问题如何将登录和密码嵌入到web服务的URL中,以便我可以针对web服务执行POST、PUT和DELETE请求。一旦web服务运行并且登录/密码包含在HTTPContext中的某个地方,我知道如何实现身份验证。另外,我并不是在寻找实现表单或基本身份验证的方法。我知道怎么做,但这不是我想要的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-20 11:27:07

最后,我使用了三种方法,这两种身份验证方法都可以很好地工作在我的数据服务上:

  • 以API密钥作为密码的基本身份验证
  • 通过作为请求头嵌入的API密钥进行身份验证
  • 以API密钥作为API路径的基于URL的身份验证。我用代理ASP.NET MVC控制器实现了这一点。
票数 0
EN

Stack Overflow用户

发布于 2010-06-14 23:05:44

我没有通过身份验证使用restful,但我必须确保用户组有权访问rest服务。这是通过传递给web服务的MD5令牌来完成的(这是一个普通的JSON服务,而不是WCF包装器)。基本上,我“知道”哪些网站被允许访问我的服务,所以我给他们自己的API密钥(为了简单起见,就是域名的MD5 )。这将由一个过滤器根据urlreferrer检查传入,如果它的MD5匹配,那么它就是go。

我知道这不是身份验证的答案,但是这是一种中等信任的方法,如果您只需要一个课程级别的“身份验证”就可以了。

不过,对于其他可能需要更少粒度的身份验证方法的项目,我很有兴趣了解其他人是如何做到这一点的。

票数 0
EN

Stack Overflow用户

发布于 2010-06-15 01:02:11

OData - WCF数据服务最佳实践来自TechEd -Meta站点主页- MSDN

代码语言:javascript
复制
<system.web.extensions>
  <scripting>
    <webServices>
       <authenticationService enabled="true" />
    </webServices>
  </scripting>
</system.web.extensions>

这个怎么样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3040707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档