Как добавить пользователей в диспетчер 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 в разделе доверенных поставщиков allowUntrustedProviders = "true" и дважды щелкнул еще раз по одному из значков, я получаю сообщение об ошибке что сборка System.Web, версия 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a не может быть найдена. Если я перезапущу диспетчер IIS, значки полностью исчезнут.

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

Заранее благодарю за помощь!


person Slauma    schedule 30.05.2010    source источник


Ответы (2)


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

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

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

person Carlos Aguilar Mares    schedule 22.06.2010
comment
Спасибо за ответ! В моем приложении есть управление пользователями, пользователи с правами администратора могут создавать учетные записи на веб-сайте. Моя проблема заключалась только в том, чтобы создать самую первую учетную запись для первого Админа. Для этого я хотел использовать IIS. Но я решил это очень похоже, как вы описываете: временная установка пула приложений на .NET 2.0. Я помню, что мне также пришлось временно отключить атрибут targetframework (4.0) в web.config, чтобы заставить его работать. Так что пока все в порядке. Я надеюсь (и предполагаю), что управление пользователями / ролями приложения .NET 4.0 будет поддерживаться в следующей версии IIS. - person Slauma; 22.06.2010
comment
Это то, что мы определенно ищем. - person Carlos Aguilar Mares; 22.06.2010

Есть простая работа, которая намного проще, чем создание административных страниц.

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

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

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

person Terence Golla    schedule 14.02.2011