Следующий код печатает названия классов в указанном namespace
определенный в текущем блоке.
, Поскольку другие парни указали, пространство имен может быть рассеяно между различными модулями, таким образом, необходимо получить список блоков сначала.
string nspace = "...";
var q = from t in Assembly.GetExecutingAssembly().GetTypes()
where t.IsClass && t.Namespace == nspace
select t;
q.ToList().ForEach(t => Console.WriteLine(t.Name));
Включение / выключение олицетворения имеет все значение при правильной настройке. То, что вам нужно, называется «ограниченное делегирование», и вам необходимо настроить для него IIS и ASP:
По умолчанию серверу IIS не разрешено олицетворять
вас по отношению к серверу SQL. Есть статья MSDN о том, как его настроить. Процесс настройки сложен и подвержен ошибкам.
Если ваша производственная ISS и SQL Server работают на разных серверах, вам понадобится администратор домена, чтобы настроить доверительные отношения олицетворения между двумя серверами. Обычно это недопустимо в большой организации.
Помимо того, что он не развертывается обычными администраторами, олицетворение также не позволяет пользователям совместно использовать свои соединения в пуле соединений SQL. Это приводит к очень заметному снижению производительности даже для небольших (5+ пользователей) веб-сайтов.
Вы пытались создать новую учетную запись пользователя для своего приложения, предоставить ей соответствующие права на сервере Sql, а затем настроить пул приложений для запуска под этой новой учетной записью? Я обычно так и делаю, и это работает. Я не запускаю свое приложение под NetworkService, LocalSystem или другими встроенными учетными записями.
Содержит ли ваша строка подключения Integrated Security = SSPI
?
Вы переключили контекст asp.net на пользователя домена?
Вот статья MSDN по этой теме