2015-09-29 71 views
0

我有一個要求,叫從視圖的操作。我做這件事的方法有兩種:,讓AJAX請求MVC和調用ADAL

  1. 通過使用AJAX
  2. 通過使用HTML.ActionLink

我想使用AJAX的一些具體原因。現在的問題是,這我是用ADAL,因此,從Azure的AD授權之後,它重定向到返回URI指定的有(MVC中使用RedirectResult)調用的動作。查詢this link以獲取完整的ADAL代碼。

現在的問題是,整個過程中工作正常,如果我使用選項2,即HTML.ActionLink但不與阿賈克斯工作。在AJAX,它永遠不會到達返回URI(這是CatchCode功能,如果您檢查上述鏈接)在蔚藍的AD規定,不過,在小提琴手的URL形成兩者相同的選項。

任何幫助?我希望我有道理。

編輯: 阿賈克斯我使用的代碼是

$.ajax({ 
     url: '/Home/About', 
     data: { id: someKey }, 
     cache: false, 
     type: "POST", 
     success: function (data, textStatus, XMLHttpRequest) { 
      //dosomething 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      //dosomething 
      console.log(errorThrown); 
     }, 
     complete: function() { 
      //dosomething 
     } 
    }); 
+0

我的朋友,我認爲我們需要爲了代碼,以幫助您:) – Luke

+0

的ADAL的C#代碼是一樣出現在鏈接。我編輯了關於ajax的問題​​。這非常簡單。 – Garima

回答

0

@Garima,這不是一個OneNote具體的問題,我不是在AAD驗證專家,但我會盡我所能回答。在進行OAuth調用時是否使用了response_type'code'?如果是這樣,你已經實現了OAuth授權碼授權流程,這將在服務器端很好地工作。如果您想從客戶端(又名Ajax)執行OAuth,則需要實施OAuth客戶端憑據授權流程。 你可以在閱讀有關2個流量:

嘗試使用客戶端證書授予AJAX流。

+0

同意Dipak它不是一個音符的具體問題,但我正在嘗試打電話給一個音符API,因此標籤。感謝您的回覆。我會研究這些鏈接。 – Garima