我想让管理员能够更改用户帐户的DefaultAccountLockoutTimeSpan和UserLockoutEnabledByDefault
基本上,当启动应用程序时,Identidy.cs的默认值为
manager.UserLockoutEnabledByDefault = true;
manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
manager.MaxFailedAccessAttemptsBeforeLockout = 5;
现在在管理控制器中,我想允许管理员更改这些值
所以我创建了一个动作结果
[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" />
}
但是当表单传递值并触发操作结果时,默认值不会覆盖也不会更改,我做错了什么?
答案 0 :(得分:0)
我最终通过
解决了我自己的问题在为会话设置保留的数据库中创建表
当应用程序运行时,我所做的就是阅读它们:
manager.UserLockoutEnabledByDefault = AccountSettings.getUserlock();
manager.DefaultAccountLockoutTimeSpan = AccountSettings.getLockOutTime();
manager.MaxFailedAccessAttemptsBeforeLockout = AccountSettings.getMaxFailedAccount();