【发布时间】:2011-03-03 17:06:54
【问题描述】:
我想为现有的 ASP.NET MVC 网站实现一个 REST api。我已经设法设置 WCF 数据服务,以便我可以浏览我的数据,但现在的问题是如何处理身份验证。
现在,数据服务通过网站的内置表单身份验证得到保护,从 AJAX 表单访问服务时可以这样做。但是,它并不适合 RESTful api。
作为表单身份验证的替代方案,我希望用户只需将用户名和密码嵌入到 Web 服务的 url 中或作为请求参数。
例如,如果我的网络服务通常可以访问
http://localhost:1234/api.svc
我希望能够使用 url 访问它
http://localhost:1234/api.svc/{login}/{password}
所以,我的问题如下:
这是一种理智的方法吗?
如果是,我该如何实现?
重定向 GET 请求似乎很简单,以便将登录名和密码作为 GET 参数附加。我也知道如何检查 http 上下文并使用这些参数来过滤结果。但我不确定是否/如何将相同的方法应用于 POST、PUT 和 DELETE 请求。我可以在 POST、PUT 和 DELETE 请求中使用 GET 参数吗?
编辑:我的问题是如何将登录名和密码嵌入到 Web 服务的 URL 中,以便我可以对 Web 服务执行 POST、PUT 和 DELETE 请求。一旦 Web 服务运行并且登录名/密码包含在 HTTPContext 中的某处,我确实知道如何实现身份验证。另外,我不是在寻找实现表单或基本身份验证的方法。我知道该怎么做,但这不是我想要的。
【问题讨论】:
标签: asp.net-mvc wcf authentication routing wcf-data-services