Проблема в том, что FileStream by SQL Server 2008 использует ТОЛЬКО Windows аутентификацию, что на мой взгляд порождает ряд проблем при попытке использовать WEB доступ к хранилищу. Конфигурация сайта IIS 7.0 таким образом:
--identity impersonate="false" password="Qqq" userName="fileupload@domen.ru" /--
не решает проблемы. Такая конфигурация позволяет получить доступ к хранилищу только в том случае, если проект запущен на локальной машине (из под VS) и имя пользователя "User@domen" совпадает с именем пользователя - инициатора процесса.
Как только мы выкладываем сайт на удаленный IIS тут же получаем либо "Unauthorized" (при настройке анонимного доступа к сайту ), либо пользователю "User@domen" - закрыт доступ к FS (хотя я делал его админом на сервере где крутится и IIS и SQL Server).
Использование персонализации исполняемого кода тоже не помогает при доступе к FS через удаленный IIS. (Локально помогает)
[DllImport("advapi32.dll", SetLastError = true)] public static extern bool LogonUser( String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [DllImport("kernel32.dll", CharSet = CharSet.Auto)]...
Попробовал добавить "NT AUTHORITY\NETWORK SERVICE" в пользователи SQL Server + дать права на чтение/запись из БД + Анонимный доступ к IIS - файл добавлен.
Файл добавлен.
Информация:
1)weblogs.asp.net
2)Пошаговая инструкция настройка анонимного доступа