使用ASP.NET Web API和ASP.NET Identity 1.0,您可以使用此扩展方法来检索当前登录的用户:
var id = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity);
但是在ASP.NET identity 2.0 alpha中,您可以覆盖ID字段的类型. Microsoft提供的示例显示将此字段设置为int.但是这个扩展方法似乎是硬编码的,甚至在alpha中返回一个字符串:
在使用ASP.NET Identity 2.0 alpha时,如何从Web API控制器中检索当前登录用户的(int)标识?
解决方法
您必须自己手动进行转换,因为声明本质上是字符串.我们可以提供某种通用扩展,例如User.Identity.GetUserId,它尝试从字符串进行转换 – > T和我们正在考虑在未来的版本中进行改进.