Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Читая теорию про безопасность, олицетворения и делегирования, совсем запутался. Последнее, что прочел — здесь. Но не могу понять как все это работает. Например, есть веб-приложение. Ставлю его под IIS. При вызове веб-приложения значение WindowsIdentity.GetCurrent().Name равно "имя_компьютера\ASPNET". Вопрос: как можно изменить WindowsIdentity? Если это невозможно, то как сделать по-другому? Может есть пример, который наглядно покажет каким образом, например, IIS получает доступ к базе данных SQL Server'а, которая работает под другим именем? Только пожалуйста без теории, голова уже не варит. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 22:34 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
В web.config пишите:<identity impersonate="true" name="my_domain\my_username" password="my_password"/>После этого ASP.NET игнорирует вашу учетную запись (например гостевая запись пользователя из Интеренет) и использует учетную запись my_username, так, как будто бы это вы вошли под этой учетной записью. Т.е. ASP.NET выполняет аутентификацию в системе за вас и получает привилегии учетной записи, указанной в конфигурации.-- Гайдар Магдануров E-Mail | Блог | Сайт Difficult I do now, impossible will take a while... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 22:59 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, gaidar, Вы писали: G>В web.config пишите:<identity impersonate="true" name="my_domain\my_username" password="my_password"/>После этого ASP.NET игнорирует вашу учетную запись (например гостевая запись пользователя из Интеренет) и использует учетную запись my_username, так, как будто бы это вы вошли под этой учетной записью. Т.е. ASP.NET выполняет аутентификацию в системе за вас и получает привилегии учетной записи, указанной в конфигурации. У меня установлен Windows XP Pro. После загрузки операционной системы я выбираю только имя — USER1 и не ввожу пароль. Что делать, если нет пароля? В web.config добавил: ... <system.web> <identity impersonate="true" userName="COMP1\USER1" password="" /> ... Получил сообщение об ошибке: Parser Error Message: Could not create Windows user token from the credentials specified in the config file. Error from the operating system 'Неопознанная ошибка' :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 00:13 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, gaidar, Вы писали: G>В web.config пишите:<identity impersonate="true" name="my_domain\my_username" password="my_password"/>После этого ASP.NET игнорирует вашу учетную запись (например гостевая запись пользователя из Интеренет) и использует учетную запись my_username, так, как будто бы это вы вошли под этой учетной записью. Т.е. ASP.NET выполняет аутентификацию в системе за вас и получает привилегии учетной записи, указанной в конфигурации. Гайдар, по-моему ты что-то странное написал. Имперсонация — это вопрос под какой учетной записью будет работать само приложение, т.е. Thread.CurrentPrincipal. По умолчанию в Windows XP в IIS 5 это будет MACHINENAME\ASPNET. При этом в Context.User может по-прежнему быть что угодно, это зависит от механизмов аутентификации и авторизации, например приложение работает из-под MACHINENAME\ADMIN, но Context.User у тебя вполне может быть DOMAINNAME\VasyaPupkine.Декадентство — это лежать на пляже у Великого Блинского болота и смотреть телевизор. В смокингах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:26 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
> Гайдар, по-моему ты что-то странное написал. Жень, я все правильно написал. Я же и говорю, что ASP.NET будет работать под указаной учетной записью (на сервере). К клиенту никакого отношения это не имеет. Может я нечетко выразился словами "вашу учетную запись" - я имел ввиду ту, которая настроена по умолчанию для процесса ASP.NET. Извиняюсь, если вызвало непонятки, хотя, мне кажется, все понятно :)-- Гайдар Магдануров E-Mail | Блог | Сайт Difficult I do now, impossible will take a while... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2006, 01:01 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, gaidar, Вы писали: G> > Гайдар, по-моему ты что-то странное написал. G>Жень, я все правильно написал. Я же и говорю, что ASP.NET будет работать под указаной учетной записью (на сервере). К клиенту никакого отношения это не имеет. А причем тут клиент? Я так понял что ты имел в виду что "как будто вы вошли под этой учетной записью" имеется в виду пользователь контекста веб-приложения и соответственно вход в это приложение. В общем, мне было неочевидно что ты имел в виду, сейчас разобрались вроде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2006, 01:08 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Ну ладно, признаю, что я неясно выразился :).-- Гайдар Магдануров E-Mail | Блог | Сайт Difficult I do now, impossible will take a while... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2006, 13:52 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Позвольте вопрос: что вы имеете в виду под словом "олицетворение"? На английский это переводится как personification и такого термина в МСДН практичеки нет. Может быть, имелось в виду authentication? Тогда это переводится как идентификация, опознание, отождествление... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2006, 15:29 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Извините, отвечаю сам себе. Уже после посылки вопроса догадался заглянуть в цитируемую статью Керчера. Там после слова олицетворение дается термин из оригинала - impersonation. Но последнее означает подражание, а также to be the impersonation of smth — быть воплощением чего-либо (согласно Lingvo online). Так что возможно, не совсем удачный перевод. Впрочем, не берусь судить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2006, 15:39 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, ekleiman, Вы писали: E>Извините, отвечаю сам себе. Уже после посылки вопроса догадался заглянуть в цитируемую статью Керчера. Там после слова олицетворение дается термин из оригинала — impersonation. Но последнее означает подражание, а также E> to be the impersonation of smth — быть воплощением чего-либо (согласно Lingvo online). Так что возможно, не совсем удачный перевод. Впрочем, не берусь судить. Перевод олицетворение — impersonation используется во всех переводах статей MSDN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 14:06 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, gaidar, Вы писали: G>В web.config пишите:<identity impersonate="true" name="my_domain\my_username" password="my_password"/>После этого ASP.NET игнорирует вашу учетную запись (например гостевая запись пользователя из Интеренет) и использует учетную запись my_username, так, как будто бы это вы вошли под этой учетной записью. Т.е. ASP.NET выполняет аутентификацию в системе за вас и получает привилегии учетной записи, указанной в конфигурации. а это поможет если нужно общаться с третьим сервером? например если БД стоит на удаленном сервере, то обычная имперсонация не поможет, обращение к БД будет все равно от учетной записи ASPNET... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 14:34 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>Доброго времени суток! А>Читая теорию про безопасность, олицетворения и делегирования, совсем запутался. Последнее, что прочел — здесь. Но не могу понять как все это работает. А>Например, есть веб-приложение. Ставлю его под IIS. При вызове веб-приложения значение WindowsIdentity.GetCurrent().Name равно "имя_компьютера\ASPNET". Вопрос: как можно изменить WindowsIdentity? Если это невозможно, то как сделать по-другому? А>Может есть пример, который наглядно покажет каким образом, например, IIS получает доступ к базе данных SQL Server'а, которая работает под другим именем? Только пожалуйста без теории, голова уже не варит. А>Спасибо. Для ASP.NET существует механизм имперсонации (олицетворения, impersonation). По умолчанию он выключен. При этом весь ASP.Net код выполняется от имени учетной записи процесса asnet_wp.exe (рассматриваем вариант WinXP+IIS5.1, для Win2003 все по другому). Это можно увидеть запустив Windows Task Manager (Ctrl+Shift+Esc) и найти там процесс aspnet_wp.exe По умолчанию он выполняется от имени локальной учетной записи ASPNET. Можно использовать другую учетную запись. Это настраивается в файле mashine.config в ключе <processModel> атрибуты userName и password. В самом mashine.config подробно написано что в эти атрибуты можно писать. Как включить имперсонацию? Для ASP.NET приложения имперсонация включается добавлением в web.config приложения строки <identity impersonate="true" /> При этом сам рабочий процесс aspnet_wp.exe продолжает исполняться от имени учетной записи указанной в в файле mashine.config в ключе <processModel>, а вот поток в котором обрабатывается web запрос будет исполняться от имени пользователя, который отправил запрос. При этом если в приложении используется не windows авторизация то это будет локальная учетная запись IUSR_ИМЯМАШИНЫ. Ее впрочем тоже можно изменить в окне свойств web папки IIS-а (вкладка Directory Security). Если в web.config мы указываем <identity impersonate="true" name="domain\username" password="password"/>то в отличие от предыдущего варианта, все запросы будут обрабатываться от имени указанной учетной записи. На что влияет имперсонация? Очень на многое. Если у вас есть код который обращается к базам данных, файлам и каталогам, сетевым ресурсам, Active Directory, системному логу сообщений, реестру Windows и т.д. и т.п. Т.е. там где проверяются права доступа. Особенно если ваш код пытается получить доступ к ресурсам, расположенным на других компьютерах. Все перечисленные учетные записи: SYSTEM, ASPNET, IUSER_xxx — являются локальными, и следовательно ваш код не сможет получить доступ к таким ресурсам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 14:46 |
|
||
|
Олицетворение и делегирование в приложениях ASP.NET
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: M>Здравствуйте, gaidar, Вы писали: G>>В web.config пишите:<identity impersonate="true" name="my_domain\my_username" password="my_password"/>После этого ASP.NET игнорирует вашу учетную запись (например гостевая запись пользователя из Интеренет) и использует учетную запись my_username, так, как будто бы это вы вошли под этой учетной записью. Т.е. ASP.NET выполняет аутентификацию в системе за вас и получает привилегии учетной записи, указанной в конфигурации. M>а это поможет если нужно общаться с третьим сервером? M>например если БД стоит на удаленном сервере, то обычная имперсонация не поможет, обращение к БД будет все равно от учетной записи ASPNET Поможет. Если в строке соединения будет "Trusted_Connection=True", если "my_domain\my_username" действительно учетная запись доменного пользоватя, если сервер БД и учетная запись в одном домене или их домены в трастовых отношениях, если на SQL сервере включена windows аутентификация Иначе надо прописывать имя пользователя и пароль в строке соединения и исползовать SQL аутентификацию на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34039927&tid=1388776]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 531ms |

| 0 / 0 |
