调用OData服务时发送授权cookie



我有两个web应用程序。
第一个web应用程序包含ASP。. NET网页并使用会员资格提供程序进行身份验证。
第二个web应用程序是严格意义上的OData web API站点,需要身份验证。

两个站点在web配置中都有相同的"machineKey validationKey/decryptionKey",并且都使用相同的"Forms"身份验证"Forms name of .TESTAUTH"

当我调用OData服务并检查线程和httpcontext的IDentity时,它们的名称和isauthenticated都是空的。

那么我如何让OData识别。testauth cookie?




编辑:
这就是我所做的。这似乎不对,但如果有人知道更好的方法,请告诉我。

dbContext.BuildingRequest += AddCookie;
private void AddCookie(object sender, Microsoft.OData.Client.BuildingRequestEventArgs e)
{       
    var authCookie = HttpContext.Current.Request.Cookies(".TESTAUTH");
    e.Headers.Add("Cookie", ".TESTAUTH=" + authCookie.Value);
}

我是这样解决这个问题的

dbContext.BuildingRequest += AddCookie;
private void AddCookie(object sender, Microsoft.OData.Client.BuildingRequestEventArgs e)
{       
    var authCookie = HttpContext.Current.Request.Cookies(".TESTAUTH");
    e.Headers.Add("Cookie", ".TESTAUTH=" + authCookie.Value);
}

最新更新