У меня есть приложение Xbap, которое является частью приложения интрасети, которому требуется доступ к файловой системе.
Я полностью доверял приложению, подписал его действительным сертификатом и импортировал сертификат в ie, и xbap отлично работает.
Моя проблема заключается в том, что я хочу корректно обработать исключение «Отказ в разрешении», если у пользователя нет установленного сертификата, т. Е. Нет доступа к файловой системе
Я думал, что смогу добиться этого, запустив xbap в режиме частичного доверия и используя что-то вроде следующего для проверки прав доступа
CodeAccessPermission p = new FileIOPermission(FileIOPermissionAccess.Write, @"c:\newfile.txt");
try
{
p.Demand();
// Has access
}
catch (Exception ex)
{
// Does not have access
}
Однако проблема заключается в том, что приведенный выше код всегда завершится ошибкой, если вы не добавили разрешение FileIOPermissions в список «Разрешения, требуемые приложением» на вкладке безопасности окна свойств вашего проекта ... даже если они запускаются из вашего локального файловая система вместо веб-сервера.
НО
Если я добавляю разрешение FileIOPermissions, и у пользователя нет установленного сертификата, ни один из моих кодов никогда не срабатывает, и xbap выдает общий экран ошибки «Доверие не предоставлено»… которого я не хочу, я хочу показать моим пользователям правильный экран ошибок, который объясняет, что они могут сделать, чтобы исправить эту ошибку
есть идеи?