Использование ЭЦП КриптоПРО?
Наиболее простой путь - это купить утилиту командной строки cryptcp, стоит не дорого.
В двух словах, для .NET Вам нужен КриптоПро CSP (криптопровайдер) и КриптоПро .NET (обеспечивает взаимодействие .NET с криптопровайдером). 
Автоматическая подпись возможна, но для нее нужен закрытый ключ. Ваш код (путём вызова соответствующих методов CryptoAPI) должен обеспечить поиск контейнера закрытого ключа и собственно создание и верификацию подписи. Можно указать параметры поиска в конфигурации, но такая реализация удобна, если используется один ключ, обновляемый раз в год (например, для подписи на стороне сервера). Для пользовательской подписи лучше использовать выбор пользователем нужного сертификата. Например, используя КриптоПро ЭЦП Browser plug-in, если говорить о подписи данных посредством web-интерфейса.