国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

這篇具有很好參考價值的文章主要介紹了使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

公司之前有一個進行郵件獲取的功能,使用ExchangeService+TLS1.2認證的方式,但是由于微軟將要將這種認證方式列為Legacy authentication,且將在2022年10月下載該認證方式。因此將嘗試使用OAuth+EWS這種認證的方式。別問問啥必須用微軟系的功能,問就是公司硬性要求。

如下為更改通知:

Stop legacy authentication:

Microsoft have announced that Exchange online – will stop allowing legacy authentication from October 2022

I am writing to you – because you are registered as owner of an account used for legacy authentication. (Legacy authentication is basically using username / password for authentication)

Reason

The reason why Microsoft ?choose to remove support is Legacy authentication is that it considered insecure and added a risk to XXXXXXXXXXXX for password spray attacks.

Information

The spreadsheet included is also published here and general information on changes in the cloud: Information on changes in Azure for developers and on-line services (sharepoint.com)

The notification from Microsoft: Basic Authentication and Exchange Online – September 2021 Update - Microsoft Tech Community

Near Future

It is planned to block Legacy Authentication for new systems – in very near future.

開始之前,先看一下下文中Delegated權限和Application權限的區(qū)別:

使用 OAuth 對 EWS 應用程序進行身份驗證

一、使用OAuth2認證申請

1、申請AppID,tenantID

管理員在AAD(Azure Active Directory)進行App 注冊。注冊完畢之后會生產(chǎn)Application (client) ID(APPID)和一個Directory (tenant) ID (租戶ID)

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

?2、申請secrets

按照如下圖步驟,

注意:

? ? ? ? 1、在選擇過期日期時,默認為6個月,可手動修改為24個月

? ? ? ? 2、生產(chǎn)的Value值只會在首次添加完成之后出現(xiàn),所以添加完成之后,將步驟2中Value值保存下來

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

?

?3、添加授權權限

?點擊左側的API Permission 鏈接,添加如下的權限

? 注意:如果你是管理員,那么你可以添加Application類型的權限,否則你只能添加Delegation類型的權限

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

二、Policy授權

需要EWS的管理原將你要獲取的郵箱地址配置到EWS服務器中,將應用程序權限限制為特定 Exchange Online 郵箱

可參考:添加特定郵箱地址的ApplicationAccessPolicy

授權完畢之后,進行查看,如出現(xiàn)如下內(nèi)容,則表示添加完畢。

使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能

?三、C#代碼編寫

1、Config文件配置第一步驟中生成的三個ID

<!-- The application ID from your app registration -->
<add key="appId" value="{{YOUR APP ID}}" />
<!-- The tenant ID copied from your app registration -->
<add key="tenantId" value="{{YOUR TENANTID}}"/>
<!-- The application's client secret from your app registration. Needed for application permission access -->
<add key="clientSecret" value="{{YOUR SECRET ID}}"/>

2、代碼執(zhí)行邏輯

using Microsoft.Exchange.WebServices.Data;
using Microsoft.Identity.Client;
using Quartz;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; 

public async System.Threading.Tasks.Task GetEmailByOAuth()
 {
var cca = ConfidentialClientApplicationBuilder
                .Create(ConfigurationManager.AppSettings["appId"])
                .WithClientSecret(ConfigurationManager.AppSettings["clientSecret"])
                .WithTenantId(ConfigurationManager.AppSettings["tenantId"])
                .Build();

            var ewsScopes = new string[] { "https://outlook.office365.com/.default" };

           
                var authResult = await cca.AcquireTokenForClient(ewsScopes).ExecuteAsync();

                var ewsClient = new ExchangeService();
                ewsClient.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
                ewsClient.Credentials = new OAuthCredentials(authResult.AccessToken);
                ewsClient.ImpersonatedUserId =
                    new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "{{你將要訪問的郵箱地址,注意該地址必須是第二步驟中添加Policy中的地址,否則會提示403,禁止訪問}}");

                ewsClient.HttpHeaders.Add("X-AnchorMailbox", "{{你將要訪問的郵箱地址,注意該地址必須是第二步驟中添加Policy中的地址,否則會提示403,禁止訪問}}");

                int offset = 0;
                int pageSize = 100;
                bool more = true;
                ItemView itemViews = new ItemView(pageSize, offset);

                PropertySet itemPorpertySet = new PropertySet(BasePropertySet.FirstClassProperties,
                    EmailMessageSchema.MimeContent);
                //獲取郵箱中的文件夾,如:收件箱,草稿箱,日歷等等
                //var findFolders = ewsClient.FindFolders(WellKnownFolderName.MsgFolderRoot, SetFilter(), view);


                //獲取收件箱中的具體郵件內(nèi)容
                FindItemsResults<Item> findResults = ewsClient.FindItems(WellKnownFolderName.Inbox, SetFilter(), itemViews);
}

3、測試

當如上代碼執(zhí)行到最下面一行,如果驗證findResults.Items.Count()>0,則驗證成功,表示可正常獲取郵箱地址中的郵件內(nèi)容。至此,郵件審批功能修改完畢。

四、總結

以上步驟都是一個坑一個坑趟出來的,只寫了正常執(zhí)行的情況,當然,在正常從頭開始做的時候,肯定會遇到很多的問題,都沒有單獨的列出來,如果讀者也在使用這種方式,途中也遇到了各種各樣的問題,請看官老爺留言,咱么一起學習,一起進步文章來源地址http://www.zghlxwxcb.cn/news/detail-460807.html

到了這里,關于使用OAuth2認證結合EWS實現(xiàn)實時讀取郵件功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SpringCloud整合spring security+ oauth2+Redis實現(xiàn)認證授權

    SpringCloud整合spring security+ oauth2+Redis實現(xiàn)認證授權

    在微服務構建中,我們一般用一個父工程來通知管理依賴的各種版本號信息。父工程pom文件如下: 在SpringCloud微服務體系中服務注冊中心是一個必要的存在,通過注冊中心提供服務的注冊和發(fā)現(xiàn)。具體細節(jié)可以查看我之前的博客,這里不再贅述。我們開始構建一個eureka注冊中

    2024年02月06日
    瀏覽(25)
  • oauth2.0第2季 分布式認證與授權實現(xiàn)單點登錄

    oauth2.0第2季 分布式認證與授權實現(xiàn)單點登錄

    1.使用jwttoken進行令牌傳輸,資源服務器在本地怎么驗證token? 1.1.1 oauth是什么 1.1.2?oauth的角色 1.1.3?oauth的認證流程 1.1.4?oauth的4種模式 1.介紹單體架構? 使用sesion保存會話信息的情況 2.前后端分離項目,調(diào)用方式 session架構不適合前后端分離項目 3.解決辦法,引出oauth2.0 配置

    2024年02月11日
    瀏覽(21)
  • Spring Gateway+Security+OAuth2+RBAC 實現(xiàn)SSO統(tǒng)一認證平臺

    Spring Gateway+Security+OAuth2+RBAC 實現(xiàn)SSO統(tǒng)一認證平臺

    背景:新項目準備用SSO來整合之前多個項目的登錄和權限,同時引入網(wǎng)關來做后續(xù)的服務限流之類的操作,所以搭建了下面這個系統(tǒng)雛形。 : Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Javax,?thymeleaf 如果對上面這些技術感興趣,可以繼續(xù)往下閱讀 如

    2024年02月13日
    瀏覽(25)
  • Gateway+Springsecurity+OAuth2.0+JWT 實現(xiàn)分布式統(tǒng)一認證授權!

    Gateway+Springsecurity+OAuth2.0+JWT 實現(xiàn)分布式統(tǒng)一認證授權!

    目錄 1. OAuth2.0授權服務 2. 資源服務 3. Gateway網(wǎng)關 4. 測試 ? 在SpringSecurity+OAuth2.0 搭建認證中心和資源服務中心-CSDN博客??????? 基礎上整合網(wǎng)關和JWT實現(xiàn)分布式統(tǒng)一認證授權。 ? 大致流程如下: 1、客戶端發(fā)出請求給網(wǎng)關獲取令牌 2、網(wǎng)關收到請求,直接轉發(fā)給授權服務

    2024年01月24日
    瀏覽(19)
  • 開放平臺實現(xiàn)安全的身份認證與授權原理與實戰(zhàn):學習OAuth2.0之PKCE

    隨著互聯(lián)網(wǎng)的不斷發(fā)展,我們的生活中越來越多的服務都需要我們的身份認證和授權。例如,我們在使用某些網(wǎng)站或應用程序時,需要通過賬號和密碼進行身份認證,以便于保護我們的個人信息和數(shù)據(jù)。同時,當我們使用某些第三方應用程序時,這些應用程序需要我們授權訪

    2024年04月16日
    瀏覽(25)
  • 開放平臺實現(xiàn)安全的身份認證與授權原理與實戰(zhàn):整理OAuth2.0各種開發(fā)指南

    OAuth 2.0 是一種基于標準 HTTP 的身份驗證和授權機制,它允許用戶授予第三方應用程序訪問他們在其他服務(如社交網(wǎng)絡、電子郵件服務器或云存儲服務)的數(shù)據(jù)。OAuth 2.0 的目標是提供一種簡化的方法,使得用戶可以安全地授予第三方應用程序訪問他們的數(shù)據(jù),而無需將他們的密

    2024年04月27日
    瀏覽(21)
  • OAuth2認證流程

    OAuth2認證流程

    目錄 什么是OAuth2 1. OAuth2認證流程 1、用戶點擊微信掃碼 2、用戶授權黑馬網(wǎng)站訪問用戶信息 3、黑馬程序員的網(wǎng)站獲取到授權碼 4、攜帶授權碼請求微信認證服務器申請令牌 5、微信認證服務器向黑馬程序員的網(wǎng)站響應令牌 6、黑馬程序員網(wǎng)站請求微信資源服務器獲取資源即用

    2024年02月16日
    瀏覽(20)
  • 18.Oauth2-微服務認證

    18.Oauth2-微服務認證

    OAuth 2.0授權框架支持第三方支持訪問有限的HTTP服務,通過在資源所有者和HTTP服務之間進行一個批準交互來代表資源者去訪問這些資源,或者通過允許第三方應用程序以自己的名義獲取訪問權限。 為了方便理解,可以想象OAuth2.0就是在用戶資源和第三方應用之間的一個中間層

    2024年02月10日
    瀏覽(25)
  • 17.Oauth2-微服務認證

    17.Oauth2-微服務認證

    OAuth 2.0授權框架支持第三方支持訪問有限的HTTP服務,通過在資源所有者和HTTP服務之間進行一個批準交互來代表資源者去訪問這些資源,或者通過允許第三方應用程序以自己的名義獲取訪問權限。 為了方便理解,可以想象OAuth2.0就是在用戶資源和第三方應用之間的一個中間層

    2024年02月10日
    瀏覽(28)
  • javamail微軟郵箱imap協(xié)議使用oauth2.0認證--微軟郵箱中國版(21v世紀互聯(lián)運營的微軟郵箱)

    javamail微軟郵箱imap協(xié)議使用oauth2.0認證--微軟郵箱中國版(21v世紀互聯(lián)運營的微軟郵箱)

    使用微軟國際版的看:javamail微軟郵箱imap協(xié)議使用oauth2.0認證–微軟郵箱國際版 imap協(xié)議使用oauth2.0身份認證,必須先對帳號進行授權,授權方式可以看我之前的文章:微軟郵箱oath2協(xié)議下,使用imap協(xié)議時對賬號授權,如果不進行授權,即使認證通過了,但是獲取郵件相關文件

    2024年04月12日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包