Asp.net核心身份仅限外部提供商

时间:2017-06-09 14:11:25

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

我希望将我的Asp.net核心应用程序配置为仅使用外部提供程序,仅举个Facebook。换句话说,我不希望我的用户能够使用密码等创建帐户。

如何使用Visual Studio生成的个人帐户模板修改默认的Asp.net核心,以安全地删除创建本地用户帐户的功能?

感谢。

1 个答案:

答案 0 :(得分:0)

我正在使用.UseRewriter()中间件,以允许我重定向到/Error不适用于我的应用程序的页面的Identity(我仅允许Github身份验证,而没有本地身份验证注册)

public static class IisRewriterConfigurationExtensions
{
    public static IApplicationBuilder UseIisRewriter(this IApplicationBuilder applicationBuilder)
    {
        using (var iisUrlRewriteStreamReader = File.OpenText("iis-application-route-rewrites.xml"))
        {
            var options = new RewriteOptions()
                .AddIISUrlRewrite(iisUrlRewriteStreamReader);

            applicationBuilder.UseRewriter(options);
        }

        return applicationBuilder;
    }
}

然后我在app.UseIisRewriter();中呼叫Startup.Configure()

我的iis-application-route-rewrites.xml看起来像这样

<?xml version="1.0" encoding="utf-8" ?>
<rewrite>
  <rules>
    <rule name="Redirect from Identity Forgot Password">
      <match url="^Identity/Account/ForgotPassword" />
      <action type="Redirect" url="Error?id=404" redirectType="Permanent" />
    </rule>
    <rule name="Redirect from Identity Reset Password">
      <match url="^Identity/Account/ResetPasswordConfirmation" />
      <action type="Redirect" url="Error?id=404" redirectType="Permanent" />
    </rule>
  <!-- More rules -->
  </rules>
</rewrites>

在我的Login.cshtml.cs中,我删除了所有不再希望用户访问的请求处理程序。