Я работаю над клиент-серверным приложением, и я хочу, чтобы клиент аутентифицировался на сервере с использованием учетных данных для входа в систему, но я не хочу, чтобы пользователь вводил их имя пользователя и пароль. Я, конечно, не хочу отвечать за безопасное обращение с паролями. Мне нужен только пользователь, чтобы доказать мне, что они такие, кем они говорят, а затем мой сервер может идти вперед и предоставлять/запрещать команды, как ему заблагорассудится.
Мои пользователи являются частью домена, поэтому я хочу иметь возможность использовать учетные данные, которые они создали при входе в систему.
Я не использую какие-либо веб-сервисы и не хочу. Я управляю как клиентским, так и серверным программным обеспечением, и оба они написаны на чистом С# и используют хорошие сокеты для получения работы.
Я бы предпочел сделать это с чистой С#/. Net, но я открыт для использования небезопасных С# и pinvokes для win32 API, если это означает, что я сделаю это.
Я немного читал о SSPI в окнах, но я чувствую себя в темноте, потому что такая разработка приложений для меня нова.
Кто-нибудь знает, как это сделать? Является ли SSPI? Как использовать SSPI из С#? Есть ли собственный .Net-способ, чтобы мой код оставался переносимым?