Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> System.Security.Permissions.FileIOPermission,xbap, Выбивает SecurityException в xbap файле 
V
    Опции темы
C4Grey
  Дата 29.12.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: нет
Всего: 1



Создал в VS2005 XAML BrowserApplication, в ней - загрузка 3ds файла при помощи dll
вот отрывок:
Код

   public partial class Page1 : System.Windows.Controls.Page
    {
        private const string STARTUP_FILE_NAME = "RSmith.3DS";
        private Reader3ds _mainReader3ds;
        private Model3DGroup _mainModel3DGroup;
        private Camera _mainCamera;
        private string _currentFileName;
        public Page1()
        {
            InitializeComponent();
        }
        private void WindowLoaded(object sender, EventArgs e)
        {
            LoadDefaulAnimation();
        }

        private void LoadDefaulAnimation()
        {
          LoadNew3dsFile(STARTUP_FILE_NAME);
        }

        private void LoadNew3dsFile(string fileName)
        {
            _mainReader3ds = new Reader3ds();
            _mainModel3DGroup = _mainReader3ds.ReadFile(fileName);          
            _currentFileName = fileName;
            if (_mainReader3ds.Cameras.Count > 0)
                _mainCamera = _mainReader3ds.Cameras[0];
            else
                _mainCamera = CreateFreeCamera();
            Viewport1.Camera = _mainCamera;
            ResetAnimation();
        }

RSmith.3DS - собственно, загружаемый файл, при компиляции все нормально запускается, файл загружается.
Запускаю просто xbap файл:
System.Security.SecurityException: Сбой при запросе разрешения типа "System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

Ошибкой завершилось следующее действие:
Demand
Ошибкой завершилось первое разрешение следующего типа:
System.Security.Permissions.FileIOPermission
Ошибкой завершилось первым следующее разрешение:
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1"
Read="C:\WINDOWS\system32\RSmith.3ds"/>
Почему файл помещается в папку WINDOWS я так и не понял но ладно...порыл хелпы, увидел где-то топик о правах...установил в свойствах проекта Security при помощи Enable ClickOnce Security Settings "This is a full trusted application" - все равно тот же Exception...
Да и если выставить права на full trusted то при загрузке с Интернета а не локально оно скажет что:
+ Пользователь отказался предоставить требуемые права приложению.
Вот так вот играюсь 4 дня....
Помогите пожалуйста...в то моск кипит...

Это сообщение отредактировал(а) C4Grey - 29.12.2007, 22:55
PM MAIL   Вверх
Mymik
Дата 30.12.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Попробуй преобразовывать релятивный путь в абсолютный путь... используй Server.MapPath() функцию. и "RSmith.3DS" замени на "~/RSmith.3DS"

Добавлено через 2 минуты и 29 секунд
Я ж правильно понял, что 
Код

_mainModel3DGroup = _mainReader3ds.ReadFile(fileName);
 
принимает путь к файлу ??? А ты передаешь имя файла... asp.net же ж запускается совсем в другом месте (не там где твой сайт)

Добавлено через 3 минуты и 45 секунд
Да, еще smile если ошибка не в этом. То было б замечательно указать в какой строчке происходит ошибка smile а то мы типа не яснослышащие smile мы только учимся ;)


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
C4Grey
  Дата 30.12.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: нет
Всего: 1



Server.MapPath(); в XBAP не работает...как альтернатива - Uri...
Код

Uri uri = new Uri("pack://siteoforigin:,,,/RSmith.3ds", UriKind.Absolute);
UriTypeConverter utc = new UriTypeConverter();
s = utc.ConvertToString(uri);
_mainReader3ds = new Reader3ds();
 _mainModel3DGroup = new Model3DGroup();
 _mainModel3DGroup = _mainReader3ds.ReadFile(fileName);

но тогда:
 Данный формат пути не поддерживается.

Ошибка в строке:
 _mainModel3DGroup = _mainReader3ds.ReadFile(s);

P.S.Ошибка в этом.Яснослышанье удается)
PM MAIL   Вверх
Mymik
Дата 30.12.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



А если попробовать как пишут вот тут вот-->> КЛАЦ
Код

Uri fileUri = new Uri("pack://application:,,,/SampleApp;component/models/testModel.3ds", UriKind.Absolute));
using (Stream stream = Application.GetResourceStream(fileUri).Stream)
{
    Ab3d.Instance.ReadFile(stream, Viewport1);
}



--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Servena
Дата 3.1.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 24.7.2007
Где: Днепропетровск

Репутация: 4
Всего: 14



Цитата

загрузка 3ds файла при помощи dll

О, люблю эту тему с разрешениями. 
У тебя у сборки нет разрешения на выполнение операции с файлами.
Поскольку у тебя Студия установлена, то в Пуск-Настройка-Панель управления-Администрирование должна быть программа Microsoft .NET Framework 2.0 Configuration. Она настраивает разрешения безопасности (не только она, но это более удобная с графическим интерфейсом).

Следующий шаг - это понять в какой Зоне (бывают Локальная, Интернет, Мой компьютер, Доверяемая и Ограниченная) работает твоя библиотека. У меня мною созданные библиотеки встраивались в HTML-страницу и в браузере внизу справа всегда было написано название зоны.

Дальше, самый простой вариант но небезопасный вариант в плане хакеров(если он пройдет, дальше можно будет тонко настроить):
Запусти  Microsoft .NET Framework 2.0 Configuration, разкрой плюсики до слова Machine (уровень компьютера), зайди в Code_Groups->All_Code: ты увидишь все зоны. Теперь нужно выбрать нужную, но так как я не знаю какая - посоветую для начала во всех этих зонах выставить FullTrust. 
Для этого -  нажимаешь на зоне прав. кн. миши - выбираешь свойства, переходишь на вкладку Permission Set и там в выпадающем списке выставляешь FullTrust, потом применить. 
После этого твое приложение на твоем компьютере должно работать.
Если получится, к безопасной настройке и настойке для работы с других компьютеров можно перейти в следующий раз.





PM MAIL   Вверх
C4Grey
  Дата 5.1.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: нет
Всего: 1



Mymik, Servena, большое спасибо.
2Mymik - именно так все и работает, спасибо...действительно уж rtfm и будет щастье)
PM MAIL   Вверх
Rust_VB
Дата 30.1.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.1.2008

Репутация: нет
Всего: нет



Servena, спасибо за твое описание помогло, но только для моего ПК.
Но ты обещался написать как это сделать для других ПК.
У меня необходимость выложить программу в сети, неужели такие настройки надо делать на каждом ПК, если да то как это можно сделать скопом на все машины? Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0693 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.