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