Procházet zdrojové kódy

修正登陆错误的问题

懒得勤快 před 4 roky
rodič
revize
1f07448d40

+ 24 - 6
src/Masuit.MyBlogs.Core/Controllers/PassportController.cs

@@ -58,13 +58,19 @@ namespace Masuit.MyBlogs.Core.Controllers
         public ActionResult Login()
         {
             var keys = RsaCrypt.GenerateRsaKeys(RsaKeyType.PKCS1);
-            Response.Cookies.Append(nameof(keys.PublicKey), keys.PublicKey);
+            Response.Cookies.Append(nameof(keys.PublicKey), keys.PublicKey, new CookieOptions()
+            {
+                SameSite = SameSiteMode.Lax
+            });
             HttpContext.Session.Set(nameof(keys.PrivateKey), keys.PrivateKey);
             string from = Request.Query["from"];
             if (!string.IsNullOrEmpty(from))
             {
                 from = HttpUtility.UrlDecode(from);
-                Response.Cookies.Append("refer", from);
+                Response.Cookies.Append("refer", from, new CookieOptions()
+                {
+                    SameSite = SameSiteMode.Lax
+                });
             }
 
             if (HttpContext.Session.Get<UserInfoDto>(SessionKey.UserInfo) != null)
@@ -154,8 +160,14 @@ namespace Masuit.MyBlogs.Core.Controllers
             }
             HangfireHelper.CreateJob(typeof(IHangfireBackJob), nameof(HangfireBackJob.LoginRecord), "default", userInfo, ClientIP, LoginType.Default);
             string refer = Request.Cookies["refer"];
-            Response.Cookies.Delete(nameof(RsaKey.PublicKey));
-            Response.Cookies.Delete("refer");
+            Response.Cookies.Delete(nameof(RsaKey.PublicKey), new CookieOptions()
+            {
+                SameSite = SameSiteMode.Lax
+            });
+            Response.Cookies.Delete("refer", new CookieOptions()
+            {
+                SameSite = SameSiteMode.Lax
+            });
             HttpContext.Session.Remove(nameof(RsaKey.PrivateKey));
             return ResultData(null, true, string.IsNullOrEmpty(refer) ? "/" : refer);
         }
@@ -210,8 +222,14 @@ namespace Masuit.MyBlogs.Core.Controllers
         public ActionResult Logout()
         {
             HttpContext.Session.Remove(SessionKey.UserInfo);
-            Response.Cookies.Delete("username");
-            Response.Cookies.Delete("password");
+            Response.Cookies.Delete("username", new CookieOptions()
+            {
+                SameSite = SameSiteMode.Lax
+            });
+            Response.Cookies.Delete("password", new CookieOptions()
+            {
+                SameSite = SameSiteMode.Lax
+            });
             HttpContext.Session.Clear();
             return Request.Method.Equals(HttpMethods.Get) ? RedirectToAction("Index", "Home") : ResultData(null, message: "注销成功!");
         }

+ 1 - 1
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -38,7 +38,7 @@
         <PackageReference Include="CacheManager.Microsoft.Extensions.Caching.Memory" Version="2.0.0-beta-1629" />
         <PackageReference Include="CacheManager.Serialization.Json" Version="2.0.0-beta-1629" />
         <PackageReference Include="CSRedisCore" Version="3.6.5" />
-        <PackageReference Include="Hangfire" Version="1.7.17" />
+        <PackageReference Include="Hangfire" Version="1.7.18" />
         <PackageReference Include="Hangfire.Autofac" Version="2.3.1" />
         <PackageReference Include="Hangfire.MemoryStorage" Version="1.7.0" />
         <PackageReference Include="htmldiff.net-core" Version="1.3.6" />