응용 프로그램을 사용하는 회사의 각 컴퓨터에 대한 정비사가있는 곳에 응용 프로그램을 구현하고 있습니다. 사용자가 Machine1이라는 사용자 이름으로 "Mechanic"역할을하고 해당 컴퓨터에 로그인되어있는 경우 사용자의 컴퓨터 1 사용자 이름과 동시에 한 명의 사용자 만 로그온 할 수있는 사용자 정책을 구현하려고합니다. 회사. 다른 사용자가 동일한 사용자 이름으로 로그인하려고하면 이미 차단 된 사용자로 로그인 한 사용자에게 알려야합니다. 세션 시간 초과가 만료되면 로그인 한 사용자를 로그 아웃하고 로그인을 사용 가능하게해야합니다. 사용자가 혼자서 로그 아웃 할 때도 마찬가지입니다. 이 asp.net MVC 4 응용 프로그램을 만들려고 해요.MVC 4에서 단일 사용자 로그인하는 방법 applictaion
저는 데이터베이스에서 SessionId, UserId 및 IsLoggedIn 부울을 사용하려고 생각했습니다. 하지만이 경우 많은 사용자가 로그인 한 경우 과도하게 보인다 데이터베이스에 쓸 MVC 응용 프로그램에서 세션 제한 시간에 로그인 된 플래그를 변경해야합니다.
구현은 어떻게 될 것입니까? 데이터베이스에서 세션 관리를 처리하기 위해 사용해야하는 메소드 또는 속성은 무엇입니까?
참고
사용자가 로그인하면 내가 확인 난 내 자신의 방법을 만들었습니다, 여기있다 : 세션 ID가있는 경우 여기에이 방법에
public static bool ValidateUser(string username, string password, string companyName)
{
int? companyId = myRepository.GetCompanyId(companyName);
int? userId = companyId == 0 ? null : myRepository.GetUserId(username, companyId);
if (userId.HasValue && userId.Value != 0)
{
var userKey = Security.GenerateUserKey(username, companyName);
return WebSecurity.Login(userKey, password);
}
else
{
return false;
}
}
내가 어떻게 든 확인하실 수 있습니다 데이터베이스와 동일합니다.
두 사용자가 모두 사용자 그룹 이름 "Mechanic"및 동일한 계정 이름으로 로그인하는 사용자. 어느 쪽이 한 사람 정책을 기반으로합니까? 또한 한 사람이 동시에 사용할 수있는 웹 응용 프로그램의 이점이 무엇인지 궁금합니다. – Flater
질문을 편집했습니다 – dlght
_ "하지만이 경우에는 많은 사용자가 로그인 한 경우 과도한 것처럼 보이는 MVC 응용 프로그램의 세션 시간 제한에 로그인 된 플래그를 변경해야합니다."- 무엇을합니까? "과잉 공격"을 의미합니까? 잊어 버렸을 때 사용자를 로그 아웃 하시겠습니까? 그렇지 않습니다. 작동하지 않습니까? 당신은 그것이 효율적이지 않을까 두려워합니까?그런 식으로 구현해보십시오. [세션 종료 알림을받는 방법] (http://stackoverflow.com/questions/1413407/)을 참조하고 실제 문제가 발생했는지 여부를 확인하십시오. – CodeCaster