В принципе, у меня есть следующий сценарий и информация:
- Мы используем HTTPS.
- Мы хотим аутентифицировать пользователя по пользователю/паролю при первом входе в систему.
- После того, как они будут аутентифицированы, я хочу, чтобы любые будущие вызовы ДРУГИХ служб (не службы входа в систему) использовали имя пользователя и какой-то сеанс (на случай, если пароль изменится в середине сеанса).
- Я хочу убедиться, что мои сеансы могут истечь по времени и управлять ими таким образом, что если пользователь попытается вызвать службу, а у него нет сеанса, он получит сообщение об ошибке (потому что он не вошел в систему). Не уверен, есть ли встроенный способ WCF для проведения сеансов таким образом, или мне придется сделать что-то настроенное с базой данных.
- Я думаю, что мы хотим использовать WSHttpBinding (не BasicHttpBinding), уверен в этом на 90%.
Я просто не могу понять, как это сделать. Часто я нахожу информацию о клиентском коде, выполняющем client.ClientCredentials.UserName.UserName = username
и client.ClientCredentials.UserName.Password = password
. Но это просто не работает, потому что с чем проверяется мой сервер? Я пытаюсь получить эту информацию и проверить ее по базе данных пользователей/пропусков. Я не собираюсь использовать аутентификацию Windows или что-то в этом роде (потому что мне все равно, кто входит в компьютер, а только кто входит в приложение).