Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
Задача заключается в следующем, необходимо "расширить" функционал System.Web.Security.Membership (или каким-то другим спостобом реализовать), а именно нужно добавить возможность регистрации и аутентификации пользователя с помоцью ключа ЕЦП дополнительно к уже существующим способам. На уровне модеои БД - это еще +1 табличка с сертификатами пользователей. При входе или регистрации пользователь просто предоставляет этот самый сертификат в систему. Технология ASP .NET MVC4. Направте, пожалуйста по правильному пути :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 09:34 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
А зачем еще одна табличка? Есть же профили. Во-вторых, если MVC4, то стоит глянуть SimpleMembershipProvider (WebMatrix.WebData). Там профильную таблицу можно атрибутивно расширять, а не как это сделано в убогом aspnet_Profile. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 09:41 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУА зачем еще одна табличка? Есть же профили...Ну это, как его... это превое что пришло в голову. А профили это есть что в данном контексте? МСУВо-вторых, если MVC4, то стоит глянуть SimpleMembershipProvider (WebMatrix.WebData). Там профильную таблицу можно атрибутивно расширять, а не как это сделано в убогом aspnet_Profile.Так, пошел глядеть... Если можно дайте хороших ссылок по указанных темах, я еще както не совсем в теме, прошу меня извинить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 09:45 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenА профили это есть что в данном контексте? А что, в контексте ASP.NET Membership "профиль" может подразумевать что-то еще? oakenЕсли можно дайте хороших ссылок по указанных темах, я еще както не совсем в теме, прошу меня извинить. Гугл тебе в руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 10:04 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУoakenА профили это есть что в данном контексте? А что, в контексте ASP.NET Membership "профиль" может подразумевать что-то еще?Это кажись понял, можно хранить сертификаты как элемент профиля в соответствующей табличке Profiles. МСУoakenЕсли можно дайте хороших ссылок по указанных темах, я еще както не совсем в теме, прошу меня извинить.Гугл тебе в руки.Гуглю уже второй день, пока все смутно и печально... Нужна хорошая стартовая ссылка, желательно с примером реализации задачи похожей на мою... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 10:15 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУА зачем еще одна табличка? Есть же профили. Во-вторых, если MVC4, то стоит глянуть SimpleMembershipProvider (WebMatrix.WebData). Там профильную таблицу можно атрибутивно расширять, а не как это сделано в убогом aspnet_Profile. В "убогом" aspnet_Profile тоже можно ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:32 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что все примеры, которые я нахожу, рассказывают как реализовать свой механизм членства, заточенный под хранилище отличное от MSSQL и ActiveDirectory. Меня же полностью устраивает то как работает штатный механизм c SQL-провайдером. Даже, как выяснилось, структуру БД изменять не нужно. Но вот как реализовать возможность создания и авторизации пользователя по сертификату пока не могу догнать. Первое что приходит в голову - наворотить собственный механизм над уже существующим который будет "подсовывать" стандартному мембершипу то что он ожидает. Но чисто интуитивно надеюсь на существование иного, более правильного пути. Как, например, переопределение или перезагрузка некоторых сужествующих методов уже существующих классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:34 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВМСУА зачем еще одна табличка? Есть же профили. Во-вторых, если MVC4, то стоит глянуть SimpleMembershipProvider (WebMatrix.WebData). Там профильную таблицу можно атрибутивно расширять, а не как это сделано в убогом aspnet_Profile. В "убогом" aspnet_Profile тоже можно ! В "убогом" aspnet_Profile нельзя , посмотри внимательнее на таблицу. RTFM. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:37 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВМСУА зачем еще одна табличка? Есть же профили. Во-вторых, если MVC4, то стоит глянуть SimpleMembershipProvider (WebMatrix.WebData). Там профильную таблицу можно атрибутивно расширять, а не как это сделано в убогом aspnet_Profile. В "убогом" aspnet_Profile тоже можно !Вот уже и механизм хранения и извлечения сертификатов ясен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:40 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУЕвгенийВпропущено... В "убогом" aspnet_Profile тоже можно ! В "убогом" aspnet_Profile нельзя , посмотри внимательнее на таблицу. RTFM. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. У меня табличка почему-то называется не aspnet_Profile а Profiles. Может мы говорим о разных вещах? Поля выделенные Вами красным есть в этой табличке. Это значит что я могу хранить любой набор атрибутов в профиле, разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:47 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
[quot oaken]МСУУ меня табличка почему-то называется не aspnet_Profile а Profiles. А у меня как она называется? oakenПоля выделенные Вами красным есть в этой табличке. Это значит что я могу хранить любой набор атрибутов в профиле, разве нет? Да, атрибутов класса. А в вебматрикс - атрибутов таблицы, которая создается через Code First Entity Framework. Это очень существенная разница, если свойства профилей нужно анализировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 11:57 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУпропущено... А у меня как она называется?судя по скрипту - aspnet_Profile МСУДа, атрибутов класса. А в вебматрикс - атрибутов таблицы, которая создается через Code First Entity Framework. Это очень существенная разница, если свойства профилей нужно анализировать.В чем она? Разве атрибуты классов анализировать нельзя? Или я неправильно понял смысл термина "анализировать"? Возможно Вы имеете ввиду анализ на уровне СУБД с помощью SQL? - тогда нет, нам скорей всего такое не понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 12:07 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
[quot oaken]МСУсудя по скрипту - aspnet_Profile Тогда в чем смысл твоего вопроса? "У меня табличка почему-то называется не aspnet_Profile а Profiles. Может мы говорим о разных вещах?" (c) oakenВ чем она? Разве атрибуты классов анализировать нельзя? Или я неправильно понял смысл термина "анализировать"? Возможно Вы имеете ввиду анализ на уровне СУБД с помощью SQL? - тогда нет, нам скорей всего такое не понадобится. Да, я про SQL. Если не понадобится, тогда профили подойдут. Но при MVC4 я бы лучше юзал WebMatrix.WebData, хотя бы потому, что это новый рекомендованный механизм, который ко всему прочему идет с MVC4 уже в коробке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 12:31 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
А как там в MVC4 логин/регистрация происходят? В WebForms я вполне нормально расширял набор параметров при регистрации, заменял username на email, всё работало, правда кода немного приходилось дописать. Была ещё одна табдичка где хранились дополнительные параметры. В вебформс, если бы понадобилось добавить только 1 параметр я бы писал его например в поле для комментариев(его всё равно почти не используют) и подправил бы немного котрол логина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 13:48 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
AHTOH_LА как там в MVC4 логин/регистрация происходят? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 13:56 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
AHTOH_LА как там в MVC4 логин/регистрация происходят?Не думаю что работа с регистрацией/логином сильно итличаются от ВебФорм. AHTOH_LВ WebForms я вполне нормально расширял набор параметров при регистрации, заменял username на email, всё работало, правда кода немного приходилось дописать. Была ещё одна табдичка где хранились дополнительные параметры. В вебформс, если бы понадобилось добавить только 1 параметр я бы писал его например в поле для комментариев(его всё равно почти не используют) и подправил бы немного котрол логина.Тут проблема немножко в другом, нужно допилить механизм логина и регистрации до возможности передвать в эти функции только сертификат, ну как вариант, могу подсовывать в качестве логина и пароля какие-то суррогаты... Проблема в том как это сделать максимально "правильно". Сейчас пробую пристегнуть SimpleMembershipProvider и попробовать реализовать это все на его базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 15:24 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenТут проблема немножко в другом, нужно допилить механизм логина и регистрации до возможности передвать в эти функции только сертификат, ну как вариант, могу подсовывать в качестве логина и пароля какие-то суррогаты... Проблема в том как это сделать максимально "правильно". Сейчас пробую пристегнуть SimpleMembershipProvider и попробовать реализовать это все на его базе. Да какая это пргоблема-то. Вызываем WebSecurity.Login, при успехе поднимает сертификат из профиля, валидируемся и выдаем соответствующий ActionResult. Можно зашить валидацию сертификата прям в свой провайдер. А можно в контроллер, как я написал. На усмотрение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 15:28 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУДа какая это пргоблема-то. Вызываем WebSecurity.Login, при успехе поднимает сертификат из профиля, валидируемся и выдаем соответствующий ActionResult. Можно зашить валидацию сертификата прям в свой провайдер. А можно в контроллер, как я написал. На усмотрение.Проблема в том, что в WebSecurity.Login нужно передать как минимум 2 параметра - логин и пароль. А вот их какраз при входе с ЕЦП и негде взять, приезжает сертификат на основании которого нужно решать пускать пользователя или нет. Вот мне и хочется реализовать чтото типа WebSecurity.Login(UserSertificate) ну и аналогично с регистрацией. Валидация приехавшего сертификата происходит до логина/регистрации в контроллере, тут все уже пашет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 15:47 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenПроблема в том, что в WebSecurity.Login нужно передать как минимум 2 параметра - логин и пароль. Ты читаешь каким местом? Я описал ситуацию, что нужно делать в этом случае - два варианта привел. oakenWebSecurity.Login(UserSertificate) Бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 15:49 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУoakenПроблема в том, что в WebSecurity.Login нужно передать как минимум 2 параметра - логин и пароль. Ты читаешь каким местом? Я описал ситуацию, что нужно делать в этом случае - два варианта привел. Еще раз внимательно перечитал Ваши посты, не нашел те места где описываются действия необходимые в такой ситуации. Можете указать более конкретно? МСУoakenWebSecurity.Login(UserSertificate) Бред.Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:08 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenЕще раз внимательно перечитал Ваши посты, не нашел те места где описываются действия необходимые в такой ситуации. Можете указать более конкретно? МСУВызываем WebSecurity.Login, при успехе поднимает сертификат из профиля, валидируемся и выдаем соответствующий ActionResult. Можно зашить валидацию сертификата прям в свой провайдер. А можно в контроллер, как я написал. На усмотрение. oakenПочему? Потому что нужно кастомизировать провайдер: WebMatrix.WebData.ExtendedMembershipProvider , который является абстрактным классом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:22 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУВызываем WebSecurity.Login, при успехе поднимает сертификат из профиля, валидируемся и выдаем соответствующий ActionResult. Можно зашить валидацию сертификата прям в свой провайдер. А можно в контроллер, как я написал. На усмотрение.Тут мы просто не понимаем дргу друга. Я немогу вызвать WebSecurity.Login для пользователей входящих по ЕЦП, потому что они не вводят логин и пароль. Поэтому мне нужно сначала найти пользователя по его сертификату и каким-то образом залогинить его без логина и пароля имея только айди. МСУПотому что нужно кастомизировать провайдер: WebMatrix.WebData.ExtendedMembershipProvider , который является абстрактным классом.Как по мне то это не выглядит бредом, осталось только разобраться как это сделать, по приведенной ссылке просто описаны члены этого класса, а что и как мне не совсем неясно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:30 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenТут мы просто не понимаем дргу друга. Я немогу вызвать WebSecurity.Login для пользователей входящих по ЕЦП, потому что они не вводят логин и пароль. Поэтому мне нужно сначала найти пользователя по его сертификату и каким-то образом залогинить его без логина и пароля имея только айди. Теперь ты понимаешь, что нужно все исходные данные изначально излагать? А вытягивать из тебя информацию клещами - дело неблагодарное. Да, сначала логин не покатит - значит, 1. Сначала валидация сертификата и получение имени пользователя (если имя не зашито, может сгенерить уникальный фэйк и привязать к этому сертификату) 2. При успешной валидации - принудительный логон. Опять же, всё это можно сделать в самом провайдере либо в контроллере, как я уже сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:38 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
МСУТеперь ты понимаешь, что нужно все исходные данные изначально излагать? А вытягивать из тебя информацию клещами - дело неблагодарное.да, я это понимаю :) МСУДа, сначала логин не покатит - значит, 1. Сначала валидация сертификата и получение имени пользователя (если имя не зашито, может сгенерить уникальный фэйк и привязать к этому сертификату) 2. При успешной валидации - принудительный логон.и это я понимаю... те Вы предлагаете все таки подсовывать какой-то суррогатный логин? а пароль? - он ведь тоже обязателен? МСУОпять же, всё это можно сделать в самом провайдере либо в контроллере, как я уже сказал.я не понимаю КАК это сделать. Я непонимаю что значит "сделать в самом провайдере", что это значит? Что значит "принудительный логон"? Хочется конкретных примеров. "В контроллере" я понимаю так - реализовать всю дополнительну логику по поиску сертификата и сопоставления его юзеру в теле контроллера и в стандартный мембершип просто подсунуть данные. Но хочется именно как-то дополнить существующий механизм членства, если есть такая возможность и это будет "более правильным". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:49 |
|
||
|
System.Web.Security
|
|||
|---|---|---|---|
|
#18+
oakenи это я понимаю... те Вы предлагаете все таки подсовывать какой-то суррогатный логин? а пароль? - он ведь тоже обязателен? Так устроен System.Security.Principal.IIdentity , извини. А вот пароль не обязателен, т.к. ты сам можешь управлять свойством IsAuthenticated в провайдере. oakenя не понимаю КАК это сделать. Я непонимаю что значит "сделать в самом провайдере", что это значит? Что значит "принудительный логон"? Хочется конкретных примеров. Я тебе дал ссылки, читай, смотри, ищи доп. материал. oakenНо хочется именно как-то дополнить существующий механизм членства, если есть такая возможность и это будет "более правильным". Дополняй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38003936&tid=1359131]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 423ms |

| 0 / 0 |
