技术:ASP.Net Web API 2 身份验证。
IDE:我在 Visual Studio 2013 中使用 SPA 模板。
故事:我添加了一个带有一个 Get 方法的控制器(参见代码)并执行了一个测试以打印“System.Threading.Thread.CurrentPrincipal.Identity.Name”。最终的游戏是找到调用 API 的客户端的身份。
问题:为什么身份显示为空?这是否与调用在不同线程上服务的事实有关?令牌(客户端在登录时收到)是否是请求的一部分并用于身份验证?
为了清楚起见,我尽量保持简短,所以如果您需要更多信息,请告诉我。
public class abcController : ApiController
{
// GET api/abc
public IEnumerable<string> Get()
{
return new string[]
{ System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString(),
"My Try"
};
}
好的,我找到了解决方法(不是解决方案)。基本上,删除这一行“config.SuppressDefaultHostAuthentication();”。 http://forums.asp.net/p/1944393/5594350.aspx?Re+Web+API+2+how+do+I+find+the+identity+of+an+authenticated+user+