亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解ASP.NET與ASP.NET Core用戶驗(yàn)證Cookie并存解決方案

 更新時(shí)間:2017年02月15日 17:05:25   作者:dudu  
本篇文章主要介紹了詳解ASP.NET與ASP.NET Core用戶驗(yàn)證Cookie并存解決方案 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

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

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

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

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的驗(yàn)證Cookie稍微麻煩些。

首先要用ASP.NET創(chuàng)建一個(gè)Web API站點(diǎn),基于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登錄站點(diǎn)中寫一個(gè)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登錄站點(diǎn)的登錄成功后的處理代碼中專門向客戶端發(fā)送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);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解.net core webapi 前后端開發(fā)分離后的配置和部署

    詳解.net core webapi 前后端開發(fā)分離后的配置和部署

    這篇文章主要介紹了.net core webapi 前后端開發(fā)分離后的配置和部署,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 利用ASP.NET MVC和Bootstrap快速搭建個(gè)人博客之后臺(tái)dataTable數(shù)據(jù)列表

    利用ASP.NET MVC和Bootstrap快速搭建個(gè)人博客之后臺(tái)dataTable數(shù)據(jù)列表

    jQuery dataTables 插件是一個(gè)優(yōu)秀的表格插件,應(yīng)用非常廣泛,本文給大家介紹利用ASP.NET MVC和Bootstrap快速搭建個(gè)人博客之后臺(tái)dataTable數(shù)據(jù)列表,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-07-07
  • 基于.net4.0實(shí)現(xiàn)IdentityServer4客戶端JWT解密

    基于.net4.0實(shí)現(xiàn)IdentityServer4客戶端JWT解密

    這篇文章主要為大家詳細(xì)介紹了基于.net4.0實(shí)現(xiàn)IdentityServer4客戶端JWT解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • asp.net 臨時(shí)數(shù)據(jù)保存實(shí)現(xiàn)代碼

    asp.net 臨時(shí)數(shù)據(jù)保存實(shí)現(xiàn)代碼

    在一個(gè)程序運(yùn)行的時(shí)候往往我們會(huì)回到上一個(gè)頁(yè)面,或者我們會(huì)需要當(dāng)時(shí)留在這個(gè)頁(yè)面的臨時(shí)數(shù)據(jù),例如,我們用百度搜索“腳本”之后我們會(huì)看到很多那啥我就不再說了?。∪缓笪覀兎祷乇緛眄?yè)面在文本框內(nèi)會(huì)有“腳本”的字樣,我們一下代碼段就是實(shí)現(xiàn)這個(gè)功能
    2012-04-04
  • jQuery+Asp.Net實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)功能的方法

    jQuery+Asp.Net實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)功能的方法

    這篇文章主要介紹了jQuery+Asp.Net實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)功能的方法,涉及asp.net數(shù)據(jù)庫(kù)讀取與字符串轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • .Net Core中使用ExceptionFilter過濾器的方法

    .Net Core中使用ExceptionFilter過濾器的方法

    這篇文章主要介紹了.Net Core中使用ExceptionFilter過濾器的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • MVC+EasyUI+三層新聞網(wǎng)站建立 實(shí)現(xiàn)登錄功能(四)

    MVC+EasyUI+三層新聞網(wǎng)站建立 實(shí)現(xiàn)登錄功能(四)

    這篇文章主要為大家詳細(xì)介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第四篇,教大家實(shí)現(xiàn)登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 獲取客戶端IP地址c#/vb.net各自實(shí)現(xiàn)代碼

    獲取客戶端IP地址c#/vb.net各自實(shí)現(xiàn)代碼

    項(xiàng)目要求獲取客戶端的IP地址,分析并且用c#與vb各自實(shí)現(xiàn)了此要求,有需要的朋友可以了解下啊,希望本文對(duì)你們有所幫助
    2013-01-01
  • ASP.NET Core按用戶等級(jí)授權(quán)的方法

    ASP.NET Core按用戶等級(jí)授權(quán)的方法

    這篇文章主要介紹了ASP.NET Core按用戶等級(jí)授權(quán),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • ASP.NET GridView控件在列上格式化時(shí)間及DataFormatString使用

    ASP.NET GridView控件在列上格式化時(shí)間及DataFormatString使用

    在GridView綁定日期格式的時(shí)候,數(shù)據(jù)庫(kù)中的日期為2008-07-04,而GridView顯示的是2007-07-04 000000,多了后面一截很不美觀,想把它去掉不知道有什么好的方法,感興趣的朋友可以了解本文,或許對(duì)你有所幫助
    2013-01-01

最新評(píng)論