我正在使用Identity 2.0創建一個應用程序,其中管理員可以禁止其他用戶。當他們禁止他們時,他們退出(當他們做出他們的下一個行動/請求時)。ASP.NET MVC在用戶註銷時顯示消息
這裏是我的禁止行爲:
public async Task<ActionResult> Block(ApplicationUser formuser, string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = await UserManager.FindByIdAsync(id);
user.DeleteDate = DateTime.Now;
user.IsConfirmed = false;
await UserManager.UpdateSecurityStampAsync(user.Id);
return RedirectToAction("Index");
}
的UpdateSecuritStampAsync是否註銷部分。另外我認爲如果我插入Startup.Auth.cs UseCookieAuthentication是很好的,因爲我在那裏改變了一些東西,以便用戶註銷(如果我錯過添加重要的東西,請在評論中寫下,我將添加它)
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(0),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
我將默認TimeSpan從30分鐘更改爲0(這可能是一個錯誤,但它的工作原理)。 這個線程的主要問題是,我想創建一些東西,當用戶註銷時它會顯示一條消息,我應該怎麼做呢? (當管理員阻止用戶時,用戶在他重新加載他的頁面之後得到消息,表示他被阻止用於不良使用或什麼)
但是這種方法鎖定了他們幾天,而我的方法阻止他們,直到有人解鎖他們(因爲你真的不知道需要多長時間)。你這樣做有問題嗎? – HighSepton
您可以無限期鎖定某個人,然後隨時解鎖他們,請注意'forDays'可以爲空。它已經內置,所以我寧願你不試圖重新發明輪子。 –
好吧,我會盡力改變它。但是這並不能真正回答我的問題,因爲我在問如何向鎖定的人顯示他被鎖定。謝謝你的建議,儘管 – HighSepton