Использование аутентификации Windows с ASP.NET MVC - PullRequest
2 голосов
/ 17 марта 2011

Я уверен, что это основной ответ, но мои поисковые возможности не помогают мне сегодня. У меня есть приложение ASP.NET MVC 2 (.NET 3.5). Он размещен на IIS 6.

Ради этого вопроса у меня есть два URL.

http://example.com/

http://example.com/admin

Я хочу, чтобы администратор был доступен для любого пользователя в домене, а root - для всех пользователей. Сервер находится в домене, но домен example1.com, поэтому они не совпадают.

Так как это ASP.NET MVC, нет папки Admin для установки прав. Я попытался настроить весь сайт, чтобы заблокировать анонимный запрос, и он разрешил все запросы. Затем в файле web.config я настроил его, чтобы запретить неаутентифицированным пользователям в папке администратора и / или разрешить анонимный доступ к корню.

В итоге я получаю приглашение на вход в систему, которое не работает. Я пробовал имя пользователя и example1 \ username, но он всегда не может войти.

Чего мне не хватает?

==== Разъяснение / Ответ ==== Pandincus дал отличное предложение кода, добавив [Authorize] в класс, это очень чистый способ сделать эту работу. Однако моей проблемой стало то, что я делал все это на одной коробке. У меня была запись HOSTS для example.com на моем ящике, и я ударил ее по URL. Когда я поместил запись HOSTS в другой ящик и зашел на сайт, это позволило мне войти без проблем. Мой вопрос был немного неполным, так как я должен был упомянуть это и тот факт, что http://localhost/ работал просто отлично.

1 Ответ

4 голосов
/ 17 марта 2011

Не используйте web.config для настройки доступа.Вот как вы это сделаете в веб-формах asp.net.

  1. Настройте ваш web.config для использования аутентификации Windows.
  2. Используйте атрибут [Authorize] на любом вашем контроллере администратора.

Любые контроллеры без атрибута [Authorize] должны автоматически открываться для общего доступа.Поэтому размещайте свой атрибут только на тех контроллерах, которые хотите заблокировать.

...