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

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

ASP.NET_SessionId+owin Cookies不發(fā)送到瀏覽器

ASP.NET_SessionId+owin Cookies不發(fā)送到瀏覽器

縹緲止盈 2019-07-22 15:43:47
ASP.NET_SessionId+owin Cookies不發(fā)送到瀏覽器我在使用owin cookie身份驗證時遇到了一個奇怪的問題。當我啟動IIS服務器時,身份驗證在IE/Firefox和Chrome上非常好。我開始在不同的平臺上進行身份驗證和登錄測試,并出現(xiàn)了一個奇怪的錯誤。偶爾,owin框架/IIS不向瀏覽器發(fā)送任何cookie。我將輸入一個用戶名和密碼,這是正確的代碼運行,但沒有cookie被傳遞到瀏覽器。如果我重新啟動服務器,它就會開始工作,然后在某個時候嘗試登錄,然后cookie再次停止交付??邕^代碼,什么也不做,也不會拋出任何錯誤。 app.UseCookieAuthentication(new CookieAuthenticationOptions         {             AuthenticationMode = AuthenticationMode.Active,             CookieHttpOnly = true,             AuthenticationType = "ABC",             LoginPath = new PathString("/Account/Login"),             CookiePath = "/",             CookieName = "ABC",             Provider = new CookieAuthenticationProvider                {                   OnApplyRedirect = ctx =>                   {                      if (!IsAjaxRequest(ctx.Request))                      {                         ctx.Response.Redirect(ctx.RedirectUri);                      }                  }                }         });更新1:問題的一個原因似乎是當我在會話中添加項目時,問題就開始了。添加一些簡單的東西,比如Session.Content["ABC"]= 123似乎造成了這個問題。我能看到的是:1)(Chrome)當我登錄時,我得到ASP.NET_SessionId+我的身份驗證cookie。2)我瀏覽了一頁設置會話的頁面.內(nèi)容.3)打開一個新瀏覽器(Firefox)并嘗試登錄,它既不會接收ASP.NET_SessionId,也不會獲得身份驗證Cookie 4)當?shù)谝粋€瀏覽器具有ASP.NET_SessionId時,它將繼續(xù)工作。從我刪除這個cookie的那一刻起,它就和我正在處理的IP地址(10.x.x)和本地主機上的所有其他瀏覽器一樣的問題。更新2:力的創(chuàng)造ASPNET_SessionId在使用owin進行身份驗證之前,首先在登錄_LOAD頁面上。1)在我驗證自己的身份之前,我先做一個隨機的Session.Content值,以啟動ASP.NET_SessionId 2),然后進行身份驗證并進行進一步的會話(3)其他瀏覽器現(xiàn)在似乎可以工作了。這太奇怪了。我只能得出結(jié)論,這與ASP和owin認為他們在不同的領(lǐng)域或類似的事情有關(guān)。更新3-兩者之間的奇怪行為。另外還發(fā)現(xiàn)了一些奇怪的行為-OWIN和ASP會話的超時是不同的。我看到的是,通過某種機制,我自己的會話比我的ASP會話的生存期更長。因此,當?shù)卿洉r:1.)我有一個以烹飪?yōu)榛A(chǔ)的第二節(jié)課。)我設置了幾個會話變量我的會話變量(2)在owin cookie會話變量之前“死亡”強制重新登錄,這會導致整個應用程序中的意外行為。(Person登錄,但沒有真正登錄)更新3B在深入研究之后,我在頁面上看到了一些評論,其中說“Forms”身份驗證超時和會話超時需要匹配。我認為正常情況下,兩者是同步的,但無論出于什么原因,兩者并不同步。解決辦法概述1)始終先創(chuàng)建一個會話,然后再進行身份驗證?;旧鲜窃趩討贸绦驎r創(chuàng)建會話。Session["Workaround"] = 0;2)[實驗性的]如果持久化cookie,請確保自己的超時/長度比web.config中的sessionTimeout長(在測試中)
查看完整描述

3 回答

?
躍然一笑

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

我查看了owin和System.Web源代碼。

問題是System.Web有自己的Cookie信息的主源,而不是set-Cookie頭。奧文只知道布景餅干頭球的事。解決方法是確保owin設置的所有cookie也在HttpContext.Current.Response.Cookies收藏。

我做了一個小中間件就是這樣做的,目的是將其放在cookie中間件注冊之后。

app.UseKentorOwinCookieSaver();app.UseCookieAuthentication(new?CookieAuthenticationOptions());


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關(guān)注
  • 765 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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