使用我自己的登录页面通过MVC

时间:2019-03-04 12:07:18

标签: asp.net-mvc azure model-view-controller azure-active-directory

我想要的内容:我想使用自己的登录页面尝试对Azure AD进行身份验证,以确保它们具有访问权限,然后在其中检查它们是否存在于数据库(AspNetUsers表)中。这意味着,如果它们存在于Azure AD(将同步到本地AD)中,则需要注册才能使用该应用。

我发现的内容:看来这是不可能的,它将始终重定向到azure login screen(如果我可以称呼它),并且一旦通过身份验证,它将重定向返回Web应用程序并登录。这是真的吗,还是有一种方法可以按照我的意愿进行?我知道,如果Web应用程序位于同一网络中并且可以与本地AD一起使用,则它是可能的。

过去,我使用以下代码使用过Azure ADB2C,但不知道如何使用自己的登录屏幕,当时我也找不到任何允许我使用自己的登录屏幕进行操作的内容将详细信息(例如用户名和密码)传递给Azure AD进行身份验证:

public void SignUpSignIn(string type)
        {
            //Logout();
            TempData["SignInOutType"] = type;
            // Use the default policy to process the sign up / sign in flow
            if (!Request.IsAuthenticated)
            {
                try
                {
                    HttpContext.GetOwinContext().Authentication.Challenge();
                    return;
                }
                catch (Exception ex)
                {

                } 
            }

            Response.Redirect("/");

        }

任何帮助将不胜感激!谢谢!

编辑

我刚刚注意到,如果您使用Azure AD Premium 1或2,则可以创建一个自定义登录页面。有人使用过吗,您可以定制多远?我看过ADB2C的视频,您可以在其中明确指定页面,css和字段,然后登录页面看起来就像您的页面-之前有人使用过吗?

1 个答案:

答案 0 :(得分:1)

我建议不要尝试跳过MS登录页面。 有一种方法可以实现,但是它不适用于拥有MFA或来自本地AD等的用户。

如果您想定义有权访问该应用的部分用户, 建议您从Azure Portal的Azure AD管理刀片中的企业应用程序下找到您的应用程序。 从那里转到“属性”并设置是否需要“用户分配”?对。 现在,您可以从“用户和组”标签中分配用户。

另一种方法是在用户进行身份验证后添加一个验证步骤,然后对您的数据库进行检查,并在需要时使身份验证失败。