第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

域的 Cookie 未用于子域

域的 Cookie 未用于子域

C#
回首憶惘然 2021-07-20 17:10:07
我HttpClient在我的應用程序中使用將我的用戶/密碼發(fā)送到一個服務,該服務返回一些我以后可以用于所有其他請求的 cookie。該服務位于https://accounts.dev.example.com/login并返回兩個具有Domain=.dev.example.com. 我發(fā)現(xiàn)的問題是,在某些機器(Windows 域控制器)中,當我請求子域中的資源時沒有使用這些 cookie https://accounts.dev.example.com/health-check,但根據(jù)MDN 文檔,域的 cookie 可用于請求資源子域:域= 可選指定 cookie 將發(fā)送到的那些主機。如果未指定,則默認為當前文檔位置的主機部分(但不包括子域)。與早期規(guī)范相反,域名中的前導點被忽略。如果指定了域,則始終包含子域。您知道如何正確配置HttpClient將域 cookie 傳遞給子域請求嗎?更多細節(jié):我的身份驗證服務返回的 cookiehttps://accounts.dev.example.com/login在 HTTP 標頭中如下所示:Set-Cookie: AK=112233;Version=1;Domain=.dev.example.com;Path=/;Max-Age=5400;Secure;HttpOnly, Set-Cookie: AS=445566;Version=1;Domain=.dev.example.com;Path=/;Max-Age=5400;Secure;HttpOnly, 然后我可以CookieContainer在普通工作站中使用以下任一調(diào)用查詢 C# :cookies.GetCookies("https://accounts.dev.example.com")cookies.GetCookies("https://dev.example.com")兩者都將返回 2 個 cookie,如:$Version=1; AK=112233; $Path=/; $Domain=.dev.example.com$Version=1; AS=445566; $Path=/; $Domain=.dev.example.com但是在其他機器(域控制器)中,第一個調(diào)用將返回一個空列表,而第二個將返回 2 個 cookie。為什么CookieContainer.GetCookies的行為會因運行代碼的機器而異?我的工作站正在使用Microsoft Windows 10 Home Single Language (.Net 4.0.30319.42000),而 DC 正在使用Microsoft Windows Server 2012 R2 Datacenter (.Net 4.0.30319.36399).代碼這是我的代碼的修改版本:public static async Task<string> DoAuth(CookieContainer cookies,                                        Dictionary<string, string> postHeaders,                                        StringContent postBody){    try    {        using (var handler = new HttpClientHandler())        {            handler.CookieContainer = cookies;            using (var client = new HttpClient(handler, true))            {                foreach (var key in postHeaders.Keys)                    client.DefaultRequestHeaders.Add(key, postHeaders[key]);                var response = await client.PostAsync("https://accounts.dev.example.com/login", postBody);                response.EnsureSuccessStatusCode();                           }        }    }
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

潛在的問題似乎是 Set-Cookie 標頭中的錯誤。問題的原因似乎是標題中的Version=組件Set-Cookie。這使得 CookieContainer 跌倒并導致奇怪的$Version$Domaincookie 然后在隨后的客戶端請求中被發(fā)送。據(jù)我所知,也沒有辦法去除這些破損的餅干。GetCookies()使用原始域進行迭代不會發(fā)現(xiàn)錯誤的 cookie。


查看完整回答
反對 回復 2021-07-31
  • 2 回答
  • 0 關注
  • 210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號