Active directory Owin OpenIdConnect Active Directory HttpContext.GetOwinContext不';t打开microsoftonlin登录页面

Active directory Owin OpenIdConnect Active Directory HttpContext.GetOwinContext不';t打开microsoftonlin登录页面,active-directory,owin,Active Directory,Owin,我正在尝试使用Owin和OpenIdConnect通过active directory(office 365 online)对用户进行身份验证。我遵循了这一点,并设法创建了一个新的MVC测试项目,并使其全部正常工作。(广告应用程序id、租户、Web配置等的设置都可以) 我现在正试图将该功能添加到我现有的ASP.net mvc应用程序中,但我无法让这个该死的东西正常工作 这就是我所拥有的:一个帐户控制器,具有如下“void”操作(来自在我的PoC中工作但在我的实际应用程序中不工作的示例): 调用此

我正在尝试使用Owin和OpenIdConnect通过active directory(office 365 online)对用户进行身份验证。我遵循了这一点,并设法创建了一个新的MVC测试项目,并使其全部正常工作。(广告应用程序id、租户、Web配置等的设置都可以)

我现在正试图将该功能添加到我现有的ASP.net mvc应用程序中,但我无法让这个该死的东西正常工作

这就是我所拥有的:一个帐户控制器,具有如下“void”操作(来自在我的PoC中工作但在我的实际应用程序中不工作的示例):

调用此操作时,我希望浏览器指向:login.microsoftonline.com…,但它会打开此页面:

就像它在某处调用某种重定向,我看不到在哪里


救命啊

我找到了答案。我必须做两件事:

  • 从引用中删除WebMatrix dll(显然,mvc的nuget软件包将其放在了那里,因此它可能会回来)
  • 从web.config中删除身份验证模式=“表单”
  • 谢谢

    public void SignIn()
        {
            // Send an OpenID Connect sign-in request.
            if (!Request.IsAuthenticated)
            {
                HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
        }