【发布时间】:2012-09-12 22:27:58
【问题描述】:
目前,我有一个销售小部件的 MVC Web 应用程序。用户使用表单身份验证登录我们的系统,然后可以根据他们所属的组执行各种功能(即下订单、查看订单、取消订单等)。
我们的任务是编写一个 API,让第三方能够在我们的系统中创建和查看订单。每个第三方都有自己的用户名,并且会根据他们所属的组限制使用某些 api 方法。
我们正在研究使用 Web Api 作为提供 api 的机制。我们还希望能够从我们的 MVC Web 应用程序中使用这个 api。不幸的是,我们遇到了 Web Api 身份验证的问题。使用 DelegatingHandler,我们为 WebApi 实现了基于 SSL 的基本身份验证。这对我们的第三方非常有用。但是,当尝试从我们的 MVC 应用程序使用 Api 时,我们会收到 401 access denied 错误,因为用户在 MVC 应用程序中使用 Forms 身份验证进行了身份验证,但我们无法将这些凭据传递给 Web Api。有没有办法将表单身份验证凭据从我们的 MVC 应用程序传递到我们的 Web api 应用程序?
IIS 设置 具有两个 Web 应用程序的名为 WidgetStore 的网站
- WidgetStore\UI - 使用表单身份验证
- WidgetStore\Api - 使用基本身份验证
【问题讨论】:
-
为了解决您的表单/基本身份验证问题,我建议您阅读 Dominick Baier 的这篇精彩文章:Forms / Basic auth claims transformation
标签: asp.net-mvc rest authentication asp.net-web-api