2016-09-26 46 views
0

我想知道是否有方法可以同時使用Asp.Net IdentityOwinOffice 365 Owin登錄?Asp.Net使用Office365應用程序的身份驗證

基本上我想創建一個掛鉤到用戶的Exchange收件箱的web鉤子。當這些消息到達時,我需要做一些處理並基本發出通知。

我能夠成功創建Office 365應用程序;我將clientIdclientSecret都納入我的Web.Config文件中。

我使用Asp.Net MVC5,我能有,基本上有一個按鈕一個觀點,它說「點擊訂閱」 ..這將隨後理想打開Office 365的登錄名和我的用戶將會以同意書形式呈現。

儘管當用戶最初登錄到網站時,我正在使用Owin與Asp.Net Identity。

當我嘗試設置Office 365登錄時;這兩條線返回null。我遵循Github上的教程give here。因此,我可以使用Graph API掛接到Exchange郵箱。但我在同意書中遇到問題?有什麼想法嗎?

這些都是可疑的兩行代碼:

 var signInUserId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value; 
     var userObjectId = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; 

signInUserId根據用戶返回我回Asp.Net用戶ID字段。我有一種感覺,我正在做一件完全愚蠢的事情,不完整的&。

回答

0

在這種情況下,你有兩種方法來考慮。

  • 您可以設置OWIN使用OpenIDConnectAuthentication當用戶點擊訂閱,您發出從您的應用程序一個Challenge。 OWIN將重定向用戶登錄,同意,然後返回到您的應用程序。然後,您可以使用中間件中可用的通知來捕獲授權碼,將其交換爲訪問令牌,並緩存令牌以備後用。 This code sample顯示如何操作。關鍵是通過在通知中調用HandleResponse()來終止授權管道,這將停止OpenIDConnect登錄管道並保留ASP.NET身份。
  • 您可以自己製作OAuth請求,而無需使用OWIN管道來觸發&捕獲請求/響應。 This sample向您展示瞭如何使用ADAL庫進行操作。我推薦這種方法,它更直接一點。
相關問題