从API项目调用时,HttpContext.Current.User.Identity.Name为空(“”)

时间:2014-12-08 21:53:14

标签: c# asp.net-web-api web-config forms-authentication

我已将配置部分设置为

 <authentication mode="Forms"/>

在api项目和客户端项目中。

我能够从客户端项目访问HttpContext.Current.User.Identity.Name但不能访问api

从API调用时,HttpContext.Current.User.Identity.IsAuthenticated为false,但不是从客户端项目调用

从web api项目

访问HttpContext.Current.Session没有问题

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

从这篇文章中收集: http://dotnetspeak.com/2014/02/leveraging-forms-authentication-in-web-api

在web api中使用HttpContext.Current.User是一个坏主意,因为它将API绑定到asp.net站点 - 这意味着api不能被除当前基于浏览器的其他任何东西使用应用。看起来有一些进一步的配置涉及与api共享表单身份验证。即使有可能,我也会尝试寻找另一种方法来检索当前用户并将数据(id)从客户端传递给API,以便从API中获取当前用户。