2016-08-31 1 views
7

을 GUID를 행동은 나에게. 내가 IIdentity에 대한 문서를 조회 할 때 Identity.Name은 그 ID를 기억하고 있음을 나타냅니다.User.Identity.Name 반환 내가 실행할 때 내 MVC 4 응용 프로그램이 GUID를 반환 일부 (모호한) 이유

현재 사용자의 이름을 가져옵니다.

내 경우에 GUID가 반환되는 이유는 무엇입니까? 의 Web.config에서

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="2880" /> 
</authentication> 

더 많은 관련 정보 : 응용 프로그램은 또한 동일한 데이터베이스에 얘기하고, 다른 컴퓨터에 배포됩니다. 우리는 해당 데이터베이스에서 "User.Identity.Name"의 값을 사용하고 사용자 (새 사용자)가 없을 때 해당 사용자에게 새 사용자를 추가합니다.

이상한 점은 응용 프로그램을 로컬 호스트에서 T로 배포 할 때 다시 로그인해야한다는 것입니다. 그러면 User.Identity.Name이 새 GUID로 설정됩니다.

(스타터 기본 응용 프로그램 우리는 물론 DB 얘기하지 않지만, 그래도 문제와, User.Identity.Name는 GUID를 반환)

+1

* 인증/승인 *에 대해 무엇을 사용합니까? –

+0

MVC4 인터넷 응용 프로그램의 기본 템플릿 일뿐입니다. 바보 같은 점이 있습니다. 당신은 일반적으로 이러한 것들에 대해 생각할 필요가 없습니다 ... – Tom

+0

아마도 [this] (http://stackoverflow.com/questions/924692/how-do-you-get-the-userid-of-a-user- object-in-asp-net-mvc)가 유용 할 수 있습니다. - 또는 - [link] (https://coderwall.com/p/qmsqya/how-to-get-current-user-id-in-asp- net-mvc-4)도 유용 할 수 있습니다. –

답변

1

당신은 일반 주요 개체를 찾을해야합니다 현재 사용자에 해당합니다.

using System.Security.Principal; 
... 

GenericPrincipal genericPrincipal = GetGenericPrincipal(); 
GenericIdentity principalIdentity = (GenericIdentity)genericPrincipal.Identity; 
string fullName = principalIdentity.Name; 
관련 문제