C# 在C web应用程序中,是否可以在不向用户显示电子邮件页面的情况下重定向到google密码页面

C# 在C web应用程序中,是否可以在不向用户显示电子邮件页面的情况下重定向到google密码页面,c#,oauth-2.0,google-oauth,C#,Oauth 2.0,Google Oauth,我正在从事C web应用程序项目,需要实现谷歌登录。 实现概念是我们有一个登录页面,当用户输入电子邮件id时,我们将在数据库中验证它以检查它是否存在。如果是,那么它应该重定向到谷歌密码页面 否则,用户应该使用在数据库中注册的电子邮件id登录到我们的应用程序,而不是使用所有的gmail id 因此,现在我的页面指向Google页面,我们可以在那里输入不同的电子邮件id,因此是否可以直接重定向到Google密码页面或任何其他解决方案。这主要取决于您使用的身份验证提供方,但默认流程类似于以下内容: /

我正在从事C web应用程序项目,需要实现谷歌登录。 实现概念是我们有一个登录页面,当用户输入电子邮件id时,我们将在数据库中验证它以检查它是否存在。如果是,那么它应该重定向到谷歌密码页面

否则,用户应该使用在数据库中注册的电子邮件id登录到我们的应用程序,而不是使用所有的gmail id


因此,现在我的页面指向Google页面,我们可以在那里输入不同的电子邮件id,因此是否可以直接重定向到Google密码页面或任何其他解决方案。

这主要取决于您使用的身份验证提供方,但默认流程类似于以下内容:

//use your logic to make the check
if ( isEmailFromGoogle( email ) )
{
    var props = new AuthenticationProperties
    {
        RedirectUri = callbackUrl,
        Items =
        {
            { "scheme", provider },
            { "returnUrl", returnUrl },
            { "login_hint", email }
        }
    };
    return Challenge( props, "Google" );
}
login_hint属性是一个特殊的Google登录参数,您可以使用它提供用户的电子邮件地址以进行预填充


挑战的结果将触发外部身份验证提供商,在本例中是Google。它是一种HttpUnauthorizedResult,内置于ASP.NET Core中,但在创建项目时选择用户身份验证时,它也是默认ASP.NET MVC模板的一部分。

谢谢Martin。我正在预填电子邮件id,但用户应再次点击登录。相反,在调用重定向URL时可以进行点击?不幸的是,没有,这取决于谷歌的身份验证,您无法影响该过程…如果这回答了问题,请接受答案,以表明它已关闭:-。