안녕,C 번호 저장 정보가
나는 C#에서 서버 프로그램을하고 있어요,하지만 난 문제로 실행했습니다. 사용자가 연결하면 그의 계정이 인증됩니다. 괜찮습니다.
하지만 문제는 서버가 연결된 사용자의 사용자 이름, 암호 등을 매개 변수로 사용하여 많은 쿼리와 함수를 실행해야한다는 것입니다. 이것은 클라이언트가 1 개인 경우 문제가되지 않지만 멀티 스레딩과 다중 연결은 어려운 작업입니다.
현재는 내가 이런 식으로 호출 할 필요가 몇 가지 기능을 가지고 : 나는 어쩌면 5-6이 기능을 사용하기 때문에 그냥 나에게 잔인한 사람처럼 보인다
functionName(action, value, username, password)
(주로 보안상의 이유로) 한 번에 하나의 문자열.
나는 정보를 섞어 쓰지 않고 여러 연결된 사용자의 정보를 저장하는 좋은 방법을 찾고있다.
감사합니다. 나는 현재하고 있어요 무엇
:
내가 전에 말했듯이,이 순간에 클라이언트는 항상 서버에 자신의 이름과 암호화 된 비밀번호를 전송한다. 그리고 사용자 이름과 암호는 항상 대부분의 방법에 대한 매개 변수로 추가되므로 데이터베이스가 올바른지 확인할 수 있습니다.
코드가 복잡해 보입니다.
편집 : 사용자가 자신의 패스워드와 아이디를 사용하여 로그인 할 순간
. 그런 다음 정보를 암호화하여 패킷 형태로 보냅니다.
서버는 정보를 암호 해독하고 데이터베이스에서 사용자 이름과 암호를 확인합니다.
그런 다음 ID를 저장하고 모든 다음 패킷에 추가 할 수 있도록 GUID를 만들어 클라이언트에 다시 보냅니다.
이제 클라이언트 (서버 쪽)의 패킷에있는 GUID가 합법적 인 서버 쪽인지 어떻게 확인합니까? -do 나는 GUID를 데이터베이스에 임시로 저장하기 만합니까? 당신은 보안 토큰을 반환하는을 인증 방법, 아마도 GUID
Guid Authenticate(username, password)
을 고려하고 username.password 대신 방법에 주변이 통과 할 수
고정 된 시간 동안 사용하지 않으면 사용자가 로그 아웃 할 때 토큰이 만료되어야한다고 추가합니다. 보안상의 이유로 ... –
감사합니다. 좋은 생각 인 것 같습니다. 궁금한데, 다음 GUID가 덮어 쓰지 않고이 GUID를 저장하는 방법은 무엇입니까? 그냥 데이터베이스에 임시 값으로 저장합니까? – Nick
데이터베이스에 세션 테이블을 유지할 수 있습니다 (예 : 설정된 시간이 지나면 토큰 만료가 용이 해짐). – Jamiec