2012-02-08 4 views
1

내가 그 way.I 전화 할 수 있다면 내 문제는 asp.net mvc 2.0 사용자 지정 memebership 공급자 인증을 구현했습니다. 모든 작동하지만 잘 하나의 문제가 있습니다. 사용자가 로그인 할 때 그는 사용자 이름과 암호를 제공하고 MSSQL의 databse를 통해이를 확인한 다음 사용자를 확인하고 FormsAuthentication을 사용하여 프로필 정보로 UserName 만 설정합니다.인증을 사용하여 ASP.NET MVC 2

그 사용자 만이 그에게 속한 새 항목을 만들려고 할 때 (사용자가 FormsAuthentication에서이 사용자 이름을 사용할 수있는 사용자가 만든 다른 항목과 함께 나열 될 수 있음) 데이터베이스에서 확인하고 해당 항목을 외래 키가있는 적절한 사용자에게 연결하지만 사용자 이름이 고유하면 작동합니다. 따라서 데이터베이스 테이블 "사용자"의 ID 열과 같은 추가 정보가 필요하므로 저장하고 나중에 사용하는 것이 가장 안전하고 "최상의 방법"인 방법은 무엇입니까? 내가 언급 한 사용자 이름은 데이터베이스에서 고유해야하며 로그인 된 사용자에 대한 정보가 충분하지 않기 때문에 나중에 사용자의 추가 정보를 사용하십시오.

답변

2

사용자 개체 (또는 추가 정보는 무엇이든)를 세션에 저장할 수 없습니까? 또는 클라이언트 측에서 쿠키를 사용하는 경우 (사용자가 브라우저를 닫은 후에도 로그인 상태를 유지해야하는 경우)? 구체적인 예가 필요한지 알려주세요.

편집 : http://www.codeproject.com/Articles/13665/HttpSecureCookie-A-Way-to-Encrypt-Cookies-with-ASP

I는 사용자의 ID (단지 그의 ID)를 저장하는 데 사용 : 당신은 "보안 쿠키"솔루션을 찾고 있다면 귀하의 의견을 읽고 나면, 이것 좀 봐. 이 쿠키를 검색 할 때 ID가 지정된 사용자를로드합니다. 일부 메모리 내 캐싱을 사용하면 각 요청에 사용자를로드하지 않아도됩니다.

하지만 세션 객체가 당신이하려고하는 것에 대해 훌륭한 것처럼 보일뿐 + 보안에 대해 걱정할 필요가 없다는 것을 명확히하고 싶었습니다.

+0

나는 세션이 그 물건을하는 가장 안전한 방법은 아니라는 것을 알았다. .. 나는 내 코드를 가지고있다. 그러나 이것은 내가 지금 당장 필요로하는 ony 기능이다. 나는 stackoverflow에서 약간의 sxamples를 발견했지만 다른 시도를 원했다. 다른 관점 –

+0

왜 안 되니? 세션은 순전히 서버에 저장되므로 예를 들어 쿠키에 물건을 두는 것보다 안전합니다. 쿠키를 사용하여 사용자 데이터를 유지하고 읽고/업데이트해야 할 때마다 암호화/해독해야합니다. – Yannis

+0

그 방법을 암호화/암호 해독하는 방법은 좋은 방법이지만 나는 전에 asp.net mvc에 익숙하지 않았기 때문에 그것을 사용하지 않았다. 몇 가지 예제를 찾았지만 다른 방식으로이 기능을 구현하는 것에 대한 다른 생각을 듣고 싶었다. –