麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

詳解ASP.NET與ASP.NET Core用戶驗證Cookie并存解決方案

2024-07-10 13:32:04
字體:
來源:轉載
供稿:網友

在你將現有的用戶登錄(Sign In)站點從ASP.NET遷移至ASP.NET Core時,你將面臨這樣一個問題——如何讓ASP.NET與ASP.NET Core用戶驗證Cookie并存,讓ASP.NET應用與ASP.NET Core應用分別使用各自的Cookie?因為ASP.NET用的是FormsAuthentication,ASP.NET Core用的是claims-based authentication,而且它們的加密算法不一樣。

我們采取的解決方法是在ASP.NET Core中登錄成功后,分別生成2個Cookie,同時發送給客戶端。

生成ASP.NET Core的基于claims-based authentication的驗證Cookie比較簡單,示例代碼如下:

var claimsIdentity = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, loginName) }, "Basic");var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);await context.Authentication.SignInAsync(_cookieAuthOptions.AuthenticationScheme,  claimsPrincipal,  new AuthenticationProperties  {    IsPersistent = isPersistent,    ExpiresUtc = DateTimeOffset.Now.Add(_cookieAuthOptions.ExpireTimeSpan)  });

生成ASP.NET的基于FormsAuthentication的驗證Cookie稍微麻煩些。

首先要用ASP.NET創建一個Web API站點,基于FormsAuthentication生成Cookie,示例代碼如下:

public IHttpActionResult GetAuthCookie(string loginName, bool isPersistent){  var cookie = FormsAuthentication.GetAuthCookie(loginName, isPersistent);  return Json(new { cookie.Name, cookie.Value, cookie.Expires });}

然后在ASP.NET Core登錄站點中寫一個Web API客戶端獲取Cookie,示例代碼如下:

public class UserServiceAgent{  private static readonly HttpClient _httpClient = new HttpClient();  public static async Task<Cookie> GetAuthCookie(string loginName, bool isPersistent)  {    var response = await _httpClient.GetAsync(url);    response.EnsureSuccessStatusCode();    return await response.Content.ReadAsAsync<Cookie>();  }}

最后在ASP.NET Core登錄站點的登錄成功后的處理代碼中專門向客戶端發送ASP.NET FormsAuthentication的Cookie,示例代碼如下:

var cookie = await _userServiceAgent.GetAuthCookie(loginName, isPersistent);var options = new CookieOptions(){  Domain = _cookieAuthOptions.CookieDomain,  HttpOnly = true};if (cookie.Expires > DateTime.Now){  options.Expires = cookie.Expires;}context.Response.Cookies.Append(cookie.Name, cookie.Value, options);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香蕉黄色网 | 久久国产精品久久久久久电车 | 久久人添人人爽人人爽人人片av | 新久草在线视频 | av免费在线观看av | 九九热在线精品视频 | 狠狠干最新网址 | 国产成人高潮免费观看精品 | 国产精品美女久久久久久不卡 | 亚洲第一色片 | 黄色视频a级毛片 | 13一14毛片免费看 | 深夜视频在线观看 | 久色成人网 | 成人免费一区二区 | 91女上位 在线播放 性欧美日本 | 国产成人小视频在线观看 | 久久一区国产 | 久久久久久久久久亚洲 | 视频h在线 | 日本在线播放一区二区 | 欧美成人一区二区三区电影 | 国产亚洲精品久久久久久久久 | 欧美女人天堂 | 国产在线精品一区二区三区 | 久久国产28 | 久久成人综合视频 | 泰剧19禁啪啪无遮挡 | 奇米888一区二区三区 | 亚洲免费看片网站 | 最新亚洲国产 | 国产乱弄 | 最新黄色av| 成人不卡 | 在线播放污 | 久久精品日韩一区 | 国产91小视频在线观看 | av手机在线免费播放 | 色婷婷一区二区三区 | 亚洲国产视频在线 | 久草在线高清 |