C# 如何在ASP MVC5中更改UserLockoutEnabledByDefault和DefaultAccountLockoutTimeSpan
我想让管理员能够更改默认用户帐户的DefaultAccountLockoutTimeSpan和UserLockoutEnabled 基本上,当应用程序启动时,Identidy.cs的默认值为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
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中。从模型传递的值在管理控制器中…我只是想找出一种方法来解决这个问题