Web Api控制器中的User.Identity.Name

时间:2014-10-19 16:34:39

标签: asp.net-mvc asp.net-web-api

我找到了一些已经存在的问题的答案,但没有一个答案适合我。

在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出现。

我错过了什么?

0 个答案:

没有答案