Здравствуйте, -Cheese-, Вы писали:
C>Из-под NetworkService сертификат не виден.
Ну так и логично. Вы же сами написали, что храните в хранилище пользователя. У Network Service туда доступа нет.
Только из вашего сообщения не очень понятно, что именно вы хотите получить.
Я так понял, что ваше ASP.Net приложение должно куда-то стучаться, используя в качестве credentials сертификат этого пользователя. Все верно?
Тогда возможные варианты:
Имперсонифицироваться под указанного пользователя (это для случая если у вас у каждого пользователя свой сертификат и соответсвенно от каждого пользователя должно идти обращение со свои сертификатом). В теории хранилище должно быть доступно, но могут быть нюансы... — сам я так не работал
Перенести сертификат из User Store в Machine Store и соответственно поменять код его извлечения
Занести сертификат в хранилище Network Service (тут тоже надо смотреть — я не помню каким профилем пользуется Network Service, может как такового профиля и нет и где тогда располагается локальное хранилище — бог его знает).
Выгрузить сертификат в файл и читать из него.
У всех вариантов есть свои плюсы и минусы. Что вам подходит больше — смотрите сами.
P.S. Кстати, а почему вы используете для запуска AppPool встроекнную учетную запись. На сколько я помню для 7-го IIS крайне рекомендуют использовать ApplicationPoolIdentity. А у этих учетных записей точно есть свой профиль и как следствие — хранилище сертификатов.