【问题标题】:Configuring options in ASP.NET Core Identity在 ASP.NET Core Identity 中配置选项
【发布时间】:2020-07-15 00:36:23
【问题描述】:

根据 ASP.NET Core documentation,您创建了一个方法来更改预定义的选项,称为“配置”。但是,类中已经有一个名为 configure 的方法。

  services.Configure<IdentityOptions>(options =>
    {
        // Password settings.
        options.Password.RequireDigit = true;
        options.Password.RequireLowercase = true;
        options.Password.RequireNonAlphanumeric = true;
        options.Password.RequireUppercase = true;
        options.Password.RequiredLength = 6;
        options.Password.RequiredUniqueChars = 1;

        // Lockout settings.
        options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
        options.Lockout.MaxFailedAccessAttempts = 5;
        options.Lockout.AllowedForNewUsers = true;

        // User settings.
        options.User.AllowedUserNameCharacters =
        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
        options.User.RequireUniqueEmail = false;
    });

你在 ConfigureServices 类的 ConfigureServices 方法中添加了这个,但是在 Configure 服务类中已经有一个名为 configure 的方法。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
    });
}

我是身份的新手,所以我不知道其中哪一个我可以改变。现在我收到这个关于命名的错误:

“命名空间不能直接包含字段或方法等成员”

【问题讨论】:

  • 你必须把方法放在一个类中。您可以调用任何您喜欢的方法来配置身份,也可以是匿名的,就像您发布的代码中一样
  • 谢谢,我意识到我的类定义在第二个配置方法之前就结束了

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


【解决方案1】:

这一切都需要包含在类定义中

【讨论】:

  • 请注意,C# 9 中将取消此要求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 2016-10-03
  • 2019-01-27
  • 2015-07-30
  • 2020-01-27
相关资源
最近更新 更多