我希望将我的Asp.net核心应用程序配置为仅使用外部提供程序,仅举个Facebook。换句话说,我不希望我的用户能够使用密码等创建帐户。
如何使用Visual Studio生成的个人帐户模板修改默认的Asp.net核心,以安全地删除创建本地用户帐户的功能?
感谢。
答案 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
中,我删除了所有不再希望用户访问的请求处理程序。