Как добавить пользователей в диспетчер IIS для приложения ASP.NET 4.0?

Я установил приложение веб-форм ASP.NET 4.0 в IIS 7.5. Если я установил пул приложений в DefaultAppPool (.NET Framework 2.0), я получаю значки для Провайдеров,.NET-ролей и .NET-пользователей, отображаемых на странице конфигурации для приложение в диспетчере IIS, и я могу управлять пользователями и ролями в IIS. (Я использую проверку подлинности с помощью форм.)

Но если я установил пул приложений в ASP.NET v4.0, у меня возникнет проблема: двойной щелчок на значках для пользователей или ролей в диспетчере IIS вызывает ошибку, сообщающую мне, что я не могу использовать эти функции, поскольку провайдеры не могут быть определены как доверенные. Если я установил в administrator.config в разделе trustedProviders allowUntrustedProviders = "true" и дважды щелкните дважды на одном из значков, я получаю ошибку что сборка System.Web, версия 4.0.0.0, Culture = нейтральная, PublicKeyToken = b03f5f7f11d50a3a не найдена. Если я перезапущу диспетчер IIS, значки полностью исчезнут.

.NET Framework 4.0 определенно установлен. Так что все это довольно запутанно. Я знаю, что .NET 4 использует другой GAC, чем старый для .NET 2-3. Возможно ли, что диспетчер IIS не сможет найти новый GAC для .NET 4? Должен ли я добавить некоторые из новых сборок 4.0 в administrator.config? Есть ли другой способ добавить пользователей и роли вместо IIS?

Благодарим вас за помощь!

Ответ 1

К сожалению, в настоящее время эти функции не поддерживаются, если ваш пул приложений использует .NET 4.0, поскольку для этого потребуется, чтобы диспетчер IIS загружал платформу .NET 4.0, чтобы вызвать правильных поставщиков (и именно поэтому пользователи .NET/членство, Роли .NET и т.д.), И это невозможно, поскольку IIS Manager является приложением .NET 2.0.

Итак, пока нет хорошего обходного пути, кроме изменения вашего пула приложений временно до 2.0 и добавления их, а затем возврата к 4.0. Но, конечно, вы не должны этого делать, если только это не просто машина для разработки.

В противном случае вы можете создать страницу с помощью элемента управления CreateUserWizard и использовать встроенные элементы управления входами из ASP.NET, которые должны быть одной строкой (разметки), чтобы получить аналогичную функциональность.

Ответ 2

Существует простая работа, которая намного проще, чем создание страниц администрирования.

  • Создайте новый сайт на своем сервере. Вы можете назвать его MembershipAdminstrationYourActualSiteName. Связывание не имеет значения, поскольку вы не будете выполнять какие-либо страницы на этом сайте, но убедитесь, что он запущен в пуле приложений по умолчанию 2.0.

  • Скопируйте файл web.config с сайта 4.0 в папку для нового сайта. Отредактируйте файл, удалив все, кроме разделов connectionString, authentication, memebership, roleManager и профиля.

  • Теперь в диспетчере IIS обращайтесь к ролям .NET и пользователям .NET. Предполагая, что вы правильно отредактировали файл web.config, вы должны увидеть пользователей и роли для вашего приложения 4.0.