Extensible storage

Автор Тема: Extensible storage  (Прочитано 13898 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Extensible storage
« : 26-06-2015, 15:26:01 »
Добрый день!
Вот мой код:

Код - C# [Выбрать]
  1.             SchemaBuilder builder = new SchemaBuilder(schemaGuid);
  2.             FieldBuilder fieldBuilder = builder.AddSimpleField("myField", typeof(String));
  3.             builder.SetReadAccessLevel(AccessLevel.Public);
  4.             builder.SetWriteAccessLevel(AccessLevel.Vendor);
  5.             builder.SetVendorId("BlaBla");
  6.  
Объясните, пожалуйста, про VendorId.
Как я понял он защищает от записи мое поле.
schema.VendorId - read only.
Он берет его из файла *.addin в  " <VendorId>BlaBla</VendorId>".
Как сделать так, чтобы задавать и  проверять его перед записью в мое поле?
А так получается, что пароль на запись можно подсмотреть в файле...

« Последнее редактирование: 26-06-2015, 16:24:45 от Виктор Чекалин »

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Extensible storage
« Ответ #1 : 30-06-2015, 09:32:29 »
Антон, вообще идея действительно состояла в том, чтобы посторонний пользователь не смог читать или изменять данные в Extensible Storage. Если я правильно понимаю, то Autodesk планировали регистрировать VendorId и, таким образом просто так поставить любой VendorId не получится.
Об этом говорит нам цитата в файле справки:
Цитировать
The vendor id is the registered developer symbol. The registration interface is available at http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=1075006 Since vendor ids are not case sensitive, the string will be converted to upper case before it is stored in the schema.

Но если перейти по ссылке, то увидим, что регистрация вендоров отменена и больше не доступна. Возможно они от этого отказались.
Если это действительно сам необходимо и/или интересно, то могу уточнить в службе поддержки.

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #2 : 30-06-2015, 09:43:36 »
Виктор , VendorId  я могу указывать любой, регистрировать его не нужно. Просто он берется из файла манифеста. Тогда каким образом  защитить доступ к данным?

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Extensible storage
« Ответ #3 : 30-06-2015, 10:04:30 »
VendorId  я могу указывать любой, регистрировать его не нужно
Собственно я об этом и написал. Хотели одно, а получилось другое.

Тогда каким образом  защитить доступ к данным?
Уточню, действительно ли они забросили ли эту идею или нет.
А с другой стороны, что вы там такое собрались хранить, что это нужно защищать? ИМХО, это из области паранои.

Даже если можно указать любой VendorId, вы действительно считаете, что кто то будет специально менять VendorId своей надстройки, для того, чтобы изменить данные в вашем ExtensibleStorage?

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #4 : 30-06-2015, 10:10:57 »
Я хочу что-то типа отличительного знака для автора.

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Extensible storage
« Ответ #5 : 30-06-2015, 10:12:55 »
Антон, а с текущей реализацией защиты вы проверяли работоспособность? Если закрыть глаза на то, что VendorId можно поставить любой, то работает защита на чтение/запись?

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #6 : 30-06-2015, 12:40:34 »
Если указать неправильный VendorID, то доступ к данным закрыт.

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Extensible storage
« Ответ #7 : 20-11-2015, 13:09:58 »
А на этом месте можно поподробнее? Очень важно понимать: смогу ли я добавлять данные в Extensible Storage, если там есть какая-то защита?

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #8 : 20-11-2015, 13:35:51 »
Евгений, добавлять вы сможете. Защита распространяется на конкретную запись.

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Extensible storage
« Ответ #9 : 20-11-2015, 14:01:08 »
Правильно ли я понимаю?
То есть я, к примеру, создал что-то вроде авторской подписи в виде инициалов, используя Extensible Storage и у семейства появляется <Entity> с полями <ExtensibleStorageField>, в которых указаны Имя, Фамилия, Отчество - это я всё к примеру. И я могу поставить cвойства <Read Access Granted> = False для <Entity>! Но сам <Entity>  я же могу удалить? Я не могу лишь только изменить запись в <ExtensibleStorageField>?

Защита распространяется на конкретную запись.
То есть на <Entity>?

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Extensible storage
« Ответ #10 : 20-11-2015, 14:03:39 »
Евгений, добавлять вы сможете. Защита распространяется на конкретную запись.

Да, только что попробовал, просто появляется новая запись <Entity>.
А в имеющийся <Entity> можно будет что-то добавить или прочесть?


Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #11 : 20-11-2015, 14:15:06 »
Евгений, можно добавлять если знаете VendorID.

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Extensible storage
« Ответ #12 : 20-11-2015, 14:19:14 »
Евгений, можно добавлять если знаете VendorID.

А без него никак?

Оффлайн Антон ОстанинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Extensible storage
« Ответ #13 : 20-11-2015, 14:20:59 »
Евгений, без него мне выдавало ошибку доступа.

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Extensible storage
« Ответ #14 : 20-11-2015, 14:26:13 »
Антон, а как тогда объяснить то, что я спокойно перезаписываю запись в Extensible Storage? Наверное потому, что Read Access и Write Access = True?