2013-01-28 1 views
0

저는 몇 달 동안 Azure 웹 사이트를 사용 해왔고 SSL을 이유로 Cloud Services로 마이그레이션하기로 결정했습니다. 프로젝트에 몇 가지 웹 역할이 필요할 수 있으므로 세션 관리에 상태가 필요하지 않습니다.HttpContext.Current.User는 무 상태 세션에 안전합니까?

내 프로젝트의 사용자 데이터를 처리하는 방법입니다. 사용자 관련 데이터가 필요한 경우 HttpContext.Current.User.Identity.Name을 통해 사용자 이름을받습니다. 이 정보를 사용하여 내 데이터베이스에 쿼리하여 내 사용자에 대한 정보를 가져옵니다.

해결 방법은이 방법입니까? 나는 약간 연구를 만들었지 만 HttpContext.Current.User이 어디서 오는가에 대한 명확한 정보를 찾을 수 없었다.

지금까지 내가 이해 한 바가 있습니다. 사용자는 사용자 PC에 쿠키를 생성하는 폼 인증으로 인증합니다. 서버가 사용자에 의해 다시 요청되면 서버는 쿠키 정보를 검사하여이를 사용하여 HttpContext 객체를 채 웁니다. 다른 웹 역할 중 하나가 다음에 요청을 받으면 HttpContext를 채우기 위해 해당 쿠키를 사용할 수 있습니까? (이것은 내가 잘못 생각한 것입니다. 웹에서 문서 및 기타 답변을 통해 이해할 수 있습니다.)

이것이 내가 기본적으로 이해하려고하는 것입니다. 나는 나의 문제를 충분히 명확하게 설명하기를 희망한다. 그것이 명확하지 않은 경우 알려 주시기 바랍니다.

+0

쿠키를 사용하여 데이터를 채우거나 저장하는 것과 관련된 사항이 있다면 ... 그 접근법에 대해 한 가지만 의문을 던지십시오. 사용자의 중요한 데이터는 무엇입니까? 당신이 손상 될 수있는 데이터를 저장하고 있습니까? ? – MethodMan

+0

작동하지만 여러 웹 역할이있는 환경에서 어떻게 작동하는지 전혀 모릅니다. 또한 쿠키에 사용자 이름 만 저장합니다. 실제로는 그렇지 않습니다. 폼 인증이 그렇게 생각합니다. –

+1

역할 기반 보안과 같은 것을 살펴볼 것입니다.이 StackOverFlow 게시판에 제공된 답변과 링크를보십시오. http://stackoverflow.com/questions/11501450/role-based-security-with-forms-authentication-use -database-for-users-and-roles – MethodMan

답변

2

귀하의 이해가 정확하다고 생각합니다. FormAuthentication을 사용하면 사용자 정보와 함께 토큰이 암호화 된 상태에서 로그인하면 생성 된 쿠키가 생깁니다. 그런 다음 다른 페이지를 요청하면 브라우저가이 쿠키를 서버에 보내고 ASP.NET은 쿠키를 해독하고 서버 측의 인스턴스 수에 관계없이 HttpContext.Current.User에 사용자 정보를 채 웁니다. 따라서 다중 인스턴스가있는 웹 역할에서 HttpContext.Current.User를 사용하는 것이 안전하다고 생각합니다.

2

아무 문제없이 SessionState가 해제 된 여러 웹 역할에서 실행되는 Azure 앱에서 HttpContext.Current.User.Identity를 사용하고 있습니다. 쿠키를 사용하도록 설정했습니다.

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogIn" cookieless="UseCookies" timeout="2880" /> 
</authentication> 
관련 문제