首页 > 解决方案 > Microsoft Azure SSO 不让我登录

问题描述

几天来,我一直在尝试解决此任务,现在是寻求帮助的时候了。我有一个使用 Microsoft Azure SSO 的功能齐全的测试项目,但是当我在自己的项目中使用代码时它不起作用。工作项目使用 .net framework 4.7.2 并基于本教程https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-asp-webapp。我自己的代码也在使用.net framework 4.7.2。

        public ActionResult Index()
    {
        return View();
    }

    public void SignIn()
    {
        if (!Request.IsAuthenticated)
        {
            HttpContext.GetOwinContext().Authentication.Challenge(
                new AuthenticationProperties { RedirectUri = "/" },
                OpenIdConnectAuthenticationDefaults.AuthenticationType);
        }
    }

从此方法返回的视图包含一个如下所示的按钮:

        <a href="@Url.Action("SignIn", "SSO")" onclick=""style="text-decoration: none;">
        <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="300px" height="50px" viewBox="0 0 3278 522" class="SignInButton">
            <style type="text/css">
                .fil0:hover {
                    fill: #4B4B4B;
                }

                .fnt0 {
                    font-size: 260px;
                    font-family: 'Segoe UI Semibold', 'Segoe UI';
                    text-decoration: none;
                }
            </style>
            <rect class="fil0" x="2" y="2" width="3174" height="517" fill="black"/>
            <rect x="150" y="129" width="122" height="122" fill="#F35325"/>
            <rect x="284" y="129" width="122" height="122" fill="#81BC06"/>
            <rect x="150" y="263" width="122" height="122" fill="#05A6F0"/>
            <rect x="284" y="263" width="122" height="122" fill="#FFBA08"/>
            <text x="470" y="357" fill="white" class="fnt0">Sign in with Microsoft</text>
        </svg>
    </a>

这一切正常,直到登录方法完成,然后网站将我发送回我使用的任何登录网址。

<forms name="SSO" loginUrl="/sso/index" defaultUrl="~/Home/Index" slidingExpiration="true" protection="All" timeout="120" />

我仍然可以通过从 Index 调用 SignIn 方法来访问 Microsoft 登录页面,但遗憾的是这不是解决方案。我的下一个问题是,当我进入 Microsoft 登录页面(通过从 Index 调用 SignIn)时,它只是说“我们无法让您登录。请再试一次。” 我已经确认 cookie 是由微软创建的!Request.IsAuthenticated 始终为 false,在测试项目中并非如此。请告诉我需要共享哪些代码才能解决此问题。

标签: c#azurecookiessingle-sign-on

解决方案


推荐阅读