为了简化asp.net webapi控制器,最好使用Principal对象(经过身份验证的用户对象)作为应在控制器构造函数中设置的属性或变量。但是User在构造函数中为null。如何在控制器构造函数中获取当前用户?
public class MyController : ApiController
{
string userId;
public MyController()
{
userId = User.Identity.GetUserId();
}
public IEnumerable<string> Get()
{
var userName = GetUserNameById(userId);
return new string[] { userName };
}
}
答案 0 :(得分:0)
创建控制器后,用户分配得很好。您将无法在构造函数中访问它。相反,在请求和关联用户已分配给控制器后,您应该直接在操作中获取用户ID。
Enable