我正在尝试使用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
就像它在某处调用某种重定向,我看不到在哪里。
帮助!
我找到了答案。我必须做两件事:
- 从引用中删除WebMatrix dll(显然mvc的nuget包把它放在那里,所以它可能会回来)
- 从 web.config 中删除身份验证模式="表单"
谢谢。