Owin OpenIdConnect Active Directory HttpContext.GetOwinContext 不打开 microsoftonlin 登录页面



我正在尝试使用Owin和OpenIdConnect通过活动目录(Office 365 online)对用户进行身份验证。 我遵循了这个示例,并设法创建了一个新的 MVC 测试项目并使其正常工作。(AD 应用 ID、租户、Web 配置等的设置都很好)。

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

这就是我所拥有的:具有如下"void"操作的帐户控制器(来自在我的 PoC 中有效但不适用于我的实际应用程序的示例):

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

调用此操作时,我希望浏览器被定向到:login.microsoftonline.com...,但它会打开此页面:https://localhost:44301/Account/Login?ReturnUrl=%2fAccount%2fSignIn

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

帮助!

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

  1. 从引用中删除WebMatrix dll(显然mvc的nuget包把它放在那里,所以它可能会回来)
  2. 从 web.config 中删除身份验证模式="表单"

谢谢。

最新更新