我找到了一些已经存在的问题的答案,但没有一个答案适合我。
在ProfileController中,我按如下方式调用WebApi Controller:
public ViewResult Index()
{
var client = new HttpClient();
var webApiUrl = ConfigurationManager.AppSettings["WebApiURL"];
var response = client.GetAsync(string.Format("{0}{1}", webApiUrl, "//api/ProfileWeb")).Result;
var profile = response.Content.ReadAsAsync<Profile>().Result;
if (profile != null)
{
_profileModel.Id = profile.Id;
_profileModel.FirstName = profile.FirstName;
_profileModel.LastName = profile.LastName;
_profileModel.PhoneNumber = profile.PhoneNumber;
_profileModel.EmailAddress = profile.EmailAddress;
}
return this.View(_profileModel);
}
在Api控制器中,我得到userName,如下所示:
public class ProfileWebController : ApiController
{
private IReminderDb _db;
public ProfileWebController(IReminderDb db)
{
_db = db;
}
public object Get()
{
string userName = User.Identity.Name; // <-- Not working..
var profile = _db.GetProfile(userName);
return profile;
}
}
在web api控制器中,我无法获取ProfileContoller中的User.Identity.Name。根据我尝试过Thread.CurrentPrincipal的其他一些答案,但仍然在web api控制器中将User.Identity.Name作为null出现。
我错过了什么?