1

我正在开始一个构建网站/网络服务的项目,人们将使用该项目通过用户名/密码通过浏览器登录,但设备将访问同一站点。设备将使用客户端证书对服务进行身份验证。

这将使用 Web API/MVC4 构建,并将使用基于声明的身份验证(最终也将使用授权)。我对使用基于声明的身份验证来验证用户登录感到满意,并且我认为我很好地掌握了使用客户端证书来验证访问服务的设备。

我的问题围绕着能够在同一个站点中支持两种类型的身份验证。导航到http://product.site.com/manage时,用户将登录,并且设备将向http://product.site.com/updates发出请求。我还没有机会对此进行编码,但我希望我最终会遇到相互冲突的身份验证。例如,当设备发出请求时,用户名/密码 auth 将尝试对用户进行身份验证,并且永远不会通过客户端证书验证。

我有一种感觉,我可能最终不得不托管 2 个单独的站点,一个用于网站,另一个用于设备使用的服务,以便每个都可以单独配置以进行身份​​验证。

有没有人有实施类似这样的经验或建议?

4

1 回答 1

1

在 webapi 部分中,您可以使用 messagehandler。您可以为用户名密码 auth 和证书设置消息处理程序,当 auth 成功时设置 currentprincipal

于 2013-10-04T18:42:45.740 回答