驗證我有一個ASP.NET MVC 4刪除用戶在ASP.NET MVC
我們有一個用戶管理,允許用戶編輯/刪除其他用戶開發的網絡系統。 關於刪除功能,目前我只在數據庫上做了delete
。
因此,這裏是我的login
控制器/方法:
[HttpPost]
public ActionResult Login(LoginViewModel loginViewModel)
{
if (_loginService == null)
_loginService = new LoginService();
var result = _loginService.Login(loginViewModel.User, loginViewModel.Password);
if (!result.Error)
{
var userData = JsonConvert.SerializeObject(result.User);
FormsAuthentication.SetAuthCookie(result.User.Id, false);
var ticket = new FormsAuthenticationTicket(1, result.Id, DateTime.Now, DateTime.Now.AddMinutes(9999), true, userData, FormsAuthentication.FormsCookiePath);
var encryptedCookie = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedCookie) { Expires = DateTime.Now.AddHours(14) };
Response.Cookies.Add(cookie);
}
return new JsonResult
{
Data = result
};
}
我對待與一些JavaScript在客戶端上的是回報。到目前爲止,這工作得很好。
對於每個需要認證的用戶,我有[Authorize]
屬性。
可以說我剛剛登錄了用戶ABC
。只要ABC
cookie是活着的,他可以導航罰款..問題是,當某個用戶(可以說ZXC
)刪除用戶ABC
,他仍然會導航罰款,直到cookie過期。
有沒有辦法在IIS上刪除ABC
會話ZXC
從數據庫中刪除他? 我不知道..強制cookie過期。我只是不想爲在導航中完成的每個操作執行一次諮詢,以檢查用戶在數據庫中是否仍然「活着」。
任何想法,建議?
感謝您的時間。我認爲這是一個辦法..但我仍然不知道是否有任何其他選項...我知道,在Java中,我們可以用'JMX interface'這樣做...必須有成纔有可能在C#。 –
您可以創建自己的會話處理程序並枚舉它們 - 但這幾乎就是'List'正在做的事情。 Cookies不存在服務器端,因此不可能改變一個不是當前請求 –
有閒來無事的一部分?我的意思是沒有辦法''formauthentication.signout()'傳遞'id'例如?到'signout()'遠程用戶? –