Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / ORM + Web services? / 24 сообщений из 24, страница 1 из 1
16.08.2008, 02:26
    #35490877
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Привет всем,

У кого нибудь есть удачный опыт по обьединению NHibernate и Web Services или WCF. Вроде читал, что если пересылать бизнес-обьекты напрямую клиенту то возникают проблемы. В частности при попытке сериализовать related обьектов получим exception (IList не сериализуется).

Может посоветуете более web service friendly ORM технологию. Хотелось бы иметь возможность передавать бизнес обьекты из веб сервиса клиенту, изменять/добавлять обьекты передавая их с клиента веб сервесу.

Спасибо.
...
Рейтинг: 0 / 0
16.08.2008, 13:30
    #35491009
xeonet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
У меня получалось.
Я прикручивал nhibernate и WCF 3.5
И всё работало.
...
Рейтинг: 0 / 0
16.08.2008, 15:06
    #35491059
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
всё нормально сериализуется и передаётся. сеть завалена примерами. в случае с ORM клиенту должны быть известны классы, которые вы хотите передавать.
...
Рейтинг: 0 / 0
17.08.2008, 03:35
    #35491346
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Ok. Понятно, спасибо. Попробую поиграться.

А как насчет шифрования? Есть ли в какой либо ORM поддержка шифрования некоторых полей обьекта?

Поясню. Необходимо сделать так чтобы в БД данные хранились в зашифрованном виде, а на уровне свойств обьекта расшифрованном. Причем это должно быть реализовано прозрачно на уровне ORM. Например с помощью атрибута пометить свойство которое должно быть зашифровано, а движок ORM все сделает сам:

class Person
{

[Encrypted]
public string FirstName
{
get; set;
}

}

Кто нибудь встречал что нить такое?
...
Рейтинг: 0 / 0
17.08.2008, 12:24
    #35491450
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
вот здесь пример использования WCF с Linq-ом
...
Рейтинг: 0 / 0
18.08.2008, 12:50
    #35492386
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
А по поводу encryption посоветуйте, есть ли в какой либо ORM реализация прозрачной шифрации/дешифрации?
...
Рейтинг: 0 / 0
18.08.2008, 12:57
    #35492408
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
к чему они там? Если у вас Web services юзайте https.
...
Рейтинг: 0 / 0
18.08.2008, 13:18
    #35492473
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
buredк чему они там? Если у вас Web services юзайте https.

Мне надо защитить данные пока они храняться в БД. Причем в несколько параноидальном стиле: данные будут закодированы ключем-паролем пользователя. То есть данные будут доступны только пользователю создавшему их и никому другому, в том числе разработчику или DB admin'у. Пароль не хранится в БД! Да несколько параноидально, но так надо!

Так как насчет encryption на уровне ORM?
...
Рейтинг: 0 / 0
18.08.2008, 13:33
    #35492496
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
NikulinТак как насчет encryption на уровне ORM?
Если про Хибернейт разговор -- то смотри в сторону IUserType, например.
...
Рейтинг: 0 / 0
18.08.2008, 14:26
    #35492661
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
НахлобучЕсли про Хибернейт разговор -- то смотри в сторону IUserType, например.

То есть мне надо свой тип определить? Что то типа EncryptedString и реализовать методы IUserType?

class EncryptedString : IUserType
{
}
...
Рейтинг: 0 / 0
18.08.2008, 14:29
    #35492668
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
NikulinТо есть мне надо свой тип определить? Что то типа EncryptedString и реализовать методы IUserType?
Ну да, это будет самый простой способ.
...
Рейтинг: 0 / 0
18.08.2008, 14:33
    #35492683
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Вы должны осознавать, что если пользователь забудет пароль, то данные будут утеряны.

А они обязательно начнут писать "Ой, я забыла пароль, помогите вспомнить"
...
Рейтинг: 0 / 0
18.08.2008, 14:34
    #35492687
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Нахлобуч NikulinТо есть мне надо свой тип определить? Что то типа EncryptedString и реализовать методы IUserType?
Ну да, это будет самый простой способ.

То есть класс будет такой например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class Person
{

public EncryptedString FirstName
{
get; set;
}

public EncryptedString LastName
{
get; set;
}

}

А если я потом буду возвращать entity Person как результат вызова WCF метода, то во что превратиться EncryptedString тип на стороне клиента?
...
Рейтинг: 0 / 0
18.08.2008, 14:36
    #35492699
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
buredВы должны осознавать, что если пользователь забудет пароль, то данные будут утеряны.

А они обязательно начнут писать "Ой, я забыла пароль, помогите вспомнить"

Знаю, но в том то и фишка что пользователь сам в ответе за свои данные и никто не имеет доступа к ним!
...
Рейтинг: 0 / 0
18.08.2008, 14:37
    #35492700
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
что будете передавать, в то и превратится. ;)
расшифровывать надо там же где и зашифровывать. По soap вы будете передавать незашифрованные данные. таким образом вся ваша система - ерунда.
...
Рейтинг: 0 / 0
18.08.2008, 14:43
    #35492716
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
buredчто будете передавать, в то и превратится. ;)
расшифровывать надо там же где и зашифровывать. По soap вы будете передавать незашифрованные данные. таким образом вся ваша система - ерунда.

1. Все не настолько секретно чтобы кому то надо было перехватывать данные. Это не доступно простому пользователю. Пользователя главное уверить что данные в польной безопасности на сервере! А для этого главное исключить возможность слива данных на стороне сервера простым - select * from table.

2. А как же насчет SSL? Его разве не прикрутить к WCF?
...
Рейтинг: 0 / 0
18.08.2008, 14:46
    #35492730
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Nikulin
2. А как же насчет SSL? Его разве не прикрутить к WCF?

можно конечно. я вам сразу про это и говорил.
...
Рейтинг: 0 / 0
18.08.2008, 14:50
    #35492745
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
bured
можно конечно. я вам сразу про это и говорил.

Ну так в итоге получается, что данные в безопасности как на этапе передачи от сервера к клиенту, так и на сервере БД.
...
Рейтинг: 0 / 0
18.08.2008, 14:53
    #35492756
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
buredчто будете передавать, в то и превратится. ;)


Так все-таки. Как класс свойства класса Person будут переопределены на клиенте? Будет ли у свойсв FirstName, LastName тип string или что?

Просто попробовать не могу так как NHibernate не установлен, да и не работал я ним вообще...
...
Рейтинг: 0 / 0
18.08.2008, 15:00
    #35492780
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
NikulinТо есть класс будет такой например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class Person
{

public EncryptedString FirstName
{
get; set;
}

public EncryptedString LastName
{
get; set;
}

}

Нет, везде будет String, а не EncryptedString.
Nikulin
А если я потом буду возвращать entity Person как результат вызова WCF метода, то во что превратиться EncryptedString тип на стороне клиента?
Ты уже определись -- то тебе "на уровне свойств обьекта расшифрованном. Причем это должно быть реализовано прозрачно на уровне ORM", то EncryptedString в свойствах появляется.
NikulinПросто попробовать не могу так как NHibernate не установлен, да и не работал я ним вообще...
Далось оно тебе, шифрование это. Да и с Хибером вот так просто "сел и поехал" не выйдет.
...
Рейтинг: 0 / 0
18.08.2008, 15:00
    #35492781
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
По SOAP в любом случае передаётся строка. Потом уже приводите её к какому-хотите типу. Грамотнее скрывать от клиента (с смысле SOA) логику доступа к данным и передавать просто String.
...
Рейтинг: 0 / 0
18.08.2008, 15:08
    #35492805
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Нахлобуч...
Ты уже определись -- то тебе "на уровне свойств обьекта расшифрованном. Причем это должно быть реализовано прозрачно на уровне ORM", то EncryptedString в свойствах появляется.

Да точно, перемудрил что-то я.

То есть свойства обьекта будут просто string, а где указывается что они должны быть зашифрованы?

Нахлобуч...
Да и с Хибером вот так просто "сел и поехал" не выйдет.

А что за сложности например?
...
Рейтинг: 0 / 0
18.08.2008, 15:25
    #35492857
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
NikulinТо есть свойства обьекта будут просто string, а где указывается что они должны быть зашифрованы?
В файлах маппинга.
NikulinА что за сложности например?
Надо прочесть и осознать Hibernate in Action и это .
...
Рейтинг: 0 / 0
18.08.2008, 15:27
    #35492865
Nikulin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM + Web services?
Ок. Спасибо
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / ORM + Web services? / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]