1

我有託管公司服務器(不天青)上的ASP.NET MVC 4(.NET 4.6.1)的應用程序設計要求做到以下幾點:如何在MVC 4應用程序中混合使用Azure AD身份驗證和Windows身份驗證?

檢查是用戶通過Windows身份驗證

認證

a)是 - 指定用戶爲「已驗證」

b)否 - 使用OpenIdConnect(OWIN)使用Azure Active Directory進行身份驗證。

一旦通過認證使用的標準[授權]屬性的控制器方法等,我已經實現單獨的Windows Azure的和AD認證是個人MVC應用程序,但從來沒有在一起。

我發現幾個來源描述如何搭配Windows和Forms身份驗證,但沒有爲這個組合。

有沒有人有關如何實現這一目標的見解?

+0

我有一個模糊的回憶,如果你做文件|新項目並創建一個新的asp.net mvc項目,該向導可讓您創建一個具有多種驗證模式的空白項目。 –

+0

我檢查了這一點,並在VS2015更新3中看來,你只能在創建項目時選擇一種認證模式。 – ChrisP

回答

1

我一年前也有類似的要求,我的做法是:

用戶被重定向到輸入他們的AD證書(https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-active-directory-authentication/

一旦他們成功地登錄上的廣告時,您會得到一個令牌。

然後,我使用剛剛獲得的令牌代表他們調用Azure AD API。我只是打電話給終端,將返回給我的用戶個人信息。

通過上述迴應,我只需要檢查的電子郵件地址最初請求的電子郵件地址相匹配。

如果匹配,則表示用戶已成功通過AD驗證。

然後,您可以繼續並向該用戶頒發令牌或Cookie以訪問您的應用程序。

+0

我的要求與你的要求略有不同。當用戶訪問站點時,我想確定它們是否已經通過Windows身份驗證,如果沒有,則顯示Azure廣告登錄。如果它們未通過Windows身份驗證,則重定向到Azure AD登錄。 我有通過OWIN工作的Azure AD身份驗證。現在我試圖弄清楚如何使用Windows認證的混合模式。 – ChrisP