2013-11-27 1 views
0

vs2010을 사용하여 asp.net에서 응용 프로그램을 개발 중입니다.asp.net에서 전체 응용 프로그램의 로그인 사용자 이름과 ID에 액세스합니다. 로그인 사용자 이름과 ID는 어디에서 응용 프로그램에 저장할 수 있습니까?

응용 프로그램에서 관리자는 Microsoft 회원 등록 마법사를 사용하여 다른 사용자 계정을 만들 수 있습니다. 사용자는 Microsoft 로그인 컨트롤을 사용하여 만든 자격 증명으로 로그인 할 수 있습니다.

이제이 Logedin 사용자의 UserID와 UserName을 전체 응용 프로그램의 다른 양식에 액세스해야합니다.

현재 난 내가 공통의 장소에서이 로그인 사용자의 사용자 ID와 사용자 이름을 저장할 수 있습니다 그래서

MembershipUser newUser = Membership.GetUser(); 
Guid newUserId = (Guid)newUser.ProviderUserKey; 

, 모든 형태의 코드를 작성하여이 정보를 접근하고있다. 일반적인 장소에서이 세부 정보에 액세스 할 수 있습니까?

도와주세요.

고마워요,

+0

어쩌면 데이터베이스에 – cosset

+0

admin으로 사용자를 생성 한 후 데이터베이스에 사용자 정보를 저장했습니다. 사용자는 필요한 모든 조건을 확인한 후 자격 증명으로 성공적으로 로그인합니다. 이제 전체 응용 프로그램에서이 로그인 사용자의 사용자 이름과 사용자 ID에 액세스하려고합니다. 따라서이 세부 정보를 응용 프로그램의 일부 위치에 저장해야합니다. 그래서 나는 모든 형태로 동일한 중복 코드를 작성할 필요가 없습니다. 어디에서이 세부 정보를 응용 프로그램에 저장할 수 있습니까? – AFofandi

+0

전체 양식이 무엇을 의미합니까? 그들은 같은 맥락에 있지 않습니까? 왜 Membership.GetUser(). ProviderUserKey를 직접 사용할 수 없습니까? –

답변

0

음 - 응용 프로그램의 데이터를 유지하는 위치에 따라 다릅니다.

데이터베이스를 저장소로 사용하는 경우 논리적으로 데이터는 응용 프로그램 구성의 데이터베이스에 대한 연결 문자열과 함께 사용자 테이블에 있어야합니다.

데이터베이스를 사용하지 않는 경우 파일 기반 저장 장치가 필요합니다 (예 : XML 또는 자기 자신을 고안 한 다음 파일의 데이터를 직렬화/비 직렬화하는 구문 분석기 필요).

두 경우 모두 보안 및 해싱/염화를 고려하고 데이터가 안전하게 유지되어야합니다.

0

모든 요청 기간 동안 HttpContext.Items에 데이터를 저장하고로드하는 정적 도우미 클래스를 사용하는 경향이 있습니다. 따라서 GetUser는 요청 당 한 번만 호출하면됩니다. 세션이 너무 길면 세션을 사용할 수 있습니다.하지만 세션이 오랫동안 지속되는 것을 잊지 마십시오. 세션 시간 초과로 인해 데이터가 손실 된 경우 다시로드 할 준비를하십시오.

정적 클래스는 전체 응용 프로그램에서 액세스 할 수 있어야합니다. 웹 사이트 프로젝트에서는 App_Code 폴더를 의미합니다.

+0

감사합니다. Luaan.I 정적 도우미 클래스로 시도 할 것입니다. – AFofandi

+0

공용 정적 변수에 저장되어 있으며 저에게 도움이됩니다. 다들 감사 해요. – AFofandi

+0

@ user3024196 : 공용 정적 변수? 당신은 그것을 수집 물이나 다른 것에 보관하고 있습니까? 정적 필드는 대부분 사용자 세션 및 요청에서도 * 전역 * 전역입니다. – Luaan

관련 문제