0

使用 .net Web Api 和 Forms 身份验证,我有一个 Api 方法可以进行第二次 Api 调用。第一个 Api 方法是从 javascript 调用的,我可以使用 GetUserPrincipal 方法获取当前登录用户的身份:

private void Put(int id, object value) {
    var principal = ControllerContext.Request.GetUserPrincipal();
    ....
    var responseMessage = new HttpClient().PutAsync("/api/secondapicontroller/", null).Result
    ....
}

但是,当该方法进行链接的内部 Api 调用时,GetUserPrincipal 返回一个空对象、没有身份、未经过身份验证等:

private void Put(int id, object value) {
    var principal = ControllerContext.Request.GetUserPrincipal();
    ....
}

您如何将身份验证信息从第一个 Api 方法传递到第二个。

4

1 回答 1

0

您只需在 HttpClient 中包含请求中的 cookie - 如果身份验证对两者都有效。这里解释了一些关于在 HttpClient 中设置 cookie 的内容。

于 2012-04-17T21:58:15.250 回答