相当于ASP.NET Core 2.0中的GetExternalAuthenticationTypes()?

时间:2017-10-08 02:01:18

标签: c# asp.net-core asp.net-core-identity

我花了很长时间尝试将ASP.NET 5.0应用程序转换为ASP.NET Core 2,但我找不到一些东西。我正在尝试获取当前安装支持的外部提供商(Google,Facebook等)列表。 Pre Core,我会用过:

Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes()

当然,由于OWIN参考,我不能再使用它了,但我也无法在其他任何地方找到类似的功能。我不想手动设置它。有没有使用它来创建一个不错的社交登录页面的示例?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您需要SignInManager.GetExternalAuthenticationSchemesAsync吗?

var loginProviders = (await SignInManager.GetExternalAuthenticationSchemesAsync()).ToList();
        <div>
            <p>
                @foreach (var provider in loginProviders)
                {
                    <button type="submit" class="btn btn-default" name="provider" value="@provider.Name" title="Log in using your @provider.DisplayName account">@provider.DisplayName</button>
                }
            </p>
        </div>
    </form>
}