在我的項目HttpContext是Controller的成員,我可以在AccountController:Controller中使用它。但我不能訪問有關當前用戶在ApiController在收縮一樣ApiController中的UserManager
public class AccountController : ApiController
{
public UserManager<ApplicationUser> UserManager { get; private set; }
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.Current.GetOwinContext().Authentication;
}
}
}
那麼如何編寫自定義ApiController吧?
在下面的方法中用戶變量在斷點上顯示爲空。如果我知道嗨登錄了,如何檢索當前用戶?
public IHttpActionResult GetUser(int id)
{
var manager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
var userid = User.Identity.GetUserId();
var user = manager.FindById(userid);
var data = new Person {Name = user.UserName, Age = 99};
return Ok(data);
}
嗨。什麼是完整的方法? – Buratino
對不起,但IntelySence不會在ApiController子項中顯示任何GetRequestContext()方法。 – Buratino
另外,爲什麼** var identity = User.Identity.Name; **的結果是NULL? – Buratino