C# 如何在ASP MVC5中更改UserLockoutEnabledByDefault和DefaultAccountLockoutTimeSpan

C# 如何在ASP MVC5中更改UserLockoutEnabledByDefault和DefaultAccountLockoutTimeSpan,c#,asp.net,C#,Asp.net,我想让管理员能够更改默认用户帐户的DefaultAccountLockoutTimeSpan和UserLockoutEnabled 基本上,当应用程序启动时,Identidy.cs的默认值为 manager.UserLockoutEnabledByDefault = true; manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5); manager.MaxFailedAcce

我想让管理员能够更改默认用户帐户的DefaultAccountLockoutTimeSpan和UserLockoutEnabled

基本上,当应用程序启动时,Identidy.cs的默认值为

        manager.UserLockoutEnabledByDefault = true;
        manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
        manager.MaxFailedAccessAttemptsBeforeLockout = 5;
现在在administration controller中,我想允许管理员更改这些值

所以我创建了一个动作结果

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult ChangeDefaultUserLockingSetting(int PasswordAttempts, int DefaultLockingTime)
        {

            UserManager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(DefaultLockingTime);
            UserManager.MaxFailedAccessAttemptsBeforeLockout = PasswordAttempts;

            return View("Index", loadAdministrationViewModel());
        }
现在在管理html中,我有一个表单:

  @using (Html.BeginForm("ChangeDefaultUserLockingSetting", "Administration", FormMethod.Post, new { }))
    { 
        @Html.AntiForgeryToken()
        @Html.TextBoxFor(m => m.PasswordAttempts)
        @Html.TextBoxFor(model => model.DefaultLockingTime)

        <input type="submit" value="Submit strongly type synchronous form" />
    }
@使用(Html.BeginForm(“changefaultuserlockingsetting”,“Administration”,FormMethod.Post,new{}))
{ 
@Html.AntiForgeryToken()
@Html.TextBoxFor(m=>m.password)
@Html.TextBoxFor(model=>model.DefaultLockingTime)
}

但是当表单传递值并触发操作结果时,默认值不会被覆盖或更改,我做错了什么?

我最终通过

在为会话设置保留的数据库中创建表

当应用程序运行时,我所做的就是读取它们:

    manager.UserLockoutEnabledByDefault = AccountSettings.getUserlock();
    manager.DefaultAccountLockoutTimeSpan = AccountSettings.getLockOutTime();
    manager.MaxFailedAccessAttemptsBeforeLockout = AccountSettings.getMaxFailedAccount();

在模型中,您使用的是强类型模型,但为什么控制器中的操作方法似乎希望使用命名参数,而不是使用从视图传递的模型?在POST to
ChangeDefaultUserLockingSetting
操作期间,是否可以检查
PasswordAttempts
DefaultLockingTime
的值?如果Identity.cs中的默认值仍然保持为manager.DefaultAccountLockoutTimeSpan=TimeSpan.FromMinutes(5);,为什么你期望得到不同的结果?@AlfMoh我只是不知道如何改变这些值,我希望它们改变overrided@TetsuyaYamamoto命名参数位于identidy.cs中。从模型传递的值在管理控制器中…我只是想找出一种方法来解决这个问题