2016-08-10 2 views
1

는 내가 현재 사용자의 사용자 이름을 변경하는 기능이 내 사이트에 IsPersistent 매개 변수현재 세션이 지속적인지 확인하는 방법은 무엇입니까? 내가 사용자 로그온을하고있는 중이 야 때

SignInManager.SignIn(user, isPersistent, false); 

를 설정해야합니다. UserName이 변경되면 현재 coockies가 실제가 아니기 때문에 LogOut 사용자와 로그인해야합니다. 그러나 사용자가 나를 Remmember 확인했는지 여부는 알 수 없습니다. 내 사이트의 세션이 isPersistent인지 어떻게 알 수 있습니까? 또는 coockies와 desinchron UserName 변경 처리하는 다른 방법이 있습니까?

는 UPDATE :

나는 현재 사용자를 추적하기 위해 내 자료 컨트롤러에

_user = db.Users.FirstOrDefault(x => x.UserName == User.Identity.Name); 

를 사용합니다. Asp.Net ID는 User.Identity.Name이지만 User.Identity.Id은 아니며이 이름은 coockies에 저장되어 있습니다. 이름이 아닌 ID를 추적하도록 시스템을 변경하는 방법이 있습니까?

답변

0

모든 사용자는 일종의 사용자 ID가 있어야합니다. 사용자를 데이터베이스에 저장하는 경우 이미 사용자가 있습니다. 원하는 경우 모든 사용자가 생성 될 때 사용자 정의 생성 ID를 추가 할 수도 있습니다.

그런 다음 해당 사용자 ID를 사용하여 사용자를 쿠키와 연결할 수 있습니다. 이 ID는 사용자에게 고유하며 사용자 이름이 변경되면 변경되지 않습니다. 이 방법을 사용하면 문제를 완전히 피할 수 있습니다.

업데이트

당신은이 같은 정체성에서 사용자 ID를 얻을 수 있습니다 : 나는 당신이 그와 함께 더 도움이하기 위해 쿠키를 만드는 방법을 볼 필요가

using Microsoft.AspNet.Identity;  

int userId = User.Identity.GetUserId(); 

합니다.

+0

게시물을 업데이트했습니다. Asp.Net ID는 이름 자체를 추적합니다. 난 시스템 ID를 추적 할 수 있지만 내가 어떻게 몰라. –

+0

어려운 선택 답변으로 표시 할 대답은 무엇입니까? Gaurav P의 답은 먼저 문제를 해결하는 데 도움이되지만, 업데이트를 사용하면 답이 더 복잡해집니다. 감사. –