2011-12-23 3 views
1

Я создаю внутренний веб-сайт для своей компании, в котором каждый, кто получит доступ к этому сайту, является частью AD.Как авторизовать против AD с помощью ролей

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

В настоящее время я начал с чего-то простого (но я не думаю, что это правильно), поскольку у меня есть логика AD в _Layout.cshtml, и, основываясь на результатах, которые я получаю там, я затем показываю другой вид для остальной части страницы (различные частичные виды). Это работает, но это не кажется правильным.

Я также думаю, что у меня возникнет проблема в том, что я хочу, чтобы эта аутентификация переносилась на весь сайт - не только на просмотр, но и фактически ограничивала доступ человека и показывала им только связанные с ними данные ,

Есть ли у кого-нибудь предложения по правильному способу сделать это? Я искал учебники, но ничего конкретно не выскочил на меня.

ответ

1

Оказывается, я полный и полный болван.

Это делает работу с проверкой подлинности Windows, обратно в AD ...

[Authorize(Roles = @"DOMAIN\an.ad.group")] 
public ActionResult About() 
{ 
    return View(); 
} 

Почему это не работает для меня? Оказывается, я неправильно назвал свое имя группы. :-(

2

Хотя он заявляет, что это Устаревшее оно полностью релевантно для вашего использования. Выезд How To: Use Membership in ASP.NET 2.0 with the Actve Directory Membership Provider.

UPDATE

I did run across this, but, I want to avoid the user having to log in. I like the auto nature of the Windows authentication. Can this forms approach be modified to work with Windows authentication?

Не совсем. Если вы не хотите, чтобы пользователь вводил имя пользователя и пароль, вам необходимо использовать Windows Authentication И они должны использовать Internet Explorer (по крайней мере, в прошлый раз, когда я использовал проверку подлинности Windows).

Аутентификация Windows делает значительное количество дополнительной конфигурации. Вы должны разрешить пользователям, которые могут войти в каталог IIS. Я уверен, что вы не можете использовать пул соединений SQL, поэтому каждый пользователь должен будет иметь логин для SQL, если на вашем сайте используется SQL-сервер.

+0

Я столкнулся с этим, но я хочу, чтобы пользователь не смог войти в систему. Мне нравится автоматический характер проверки подлинности Windows. Можно ли модифицировать этот метод для работы с аутентификацией Windows? – JasCav

+0

Обновлено за ваш вопрос. –

0

Один из лучших способов сделать это - использовать Sharepoint. У этого уже есть структура, чтобы соединиться с AD. http://sharepoint.microsoft.com/en-us/Pages/Try-It.aspx

+0

Я не думаю, что OP хочет представить Sharepoint в своем приложении ASP.NET MVC 3 только для аутентификации ...... –

+0

Я согласен с @marc_s. Хотя Sharepoint используется в моей организации, я хочу научитесь делать это вне контекста Sharepoint. – JasCav

+0

Это моя ошибка, когда я читал ее, у меня было ощущение, что он просто ищет предложения о том, как интегрироваться с AD. Всегда был хороший результат с использованием Sharepoint в этом типе окружающей среды, поэтому я просто сделал предложение. «Что я пытаюсь сделать, когда пользователь подключается к сайту, они автоматически аутентифицируются против AD. В зависимости от того, какая группа является частью этого конкретного веб-приложения (несколько групп AD), я показываю их разные взгляды на сайт ». ^ Этот параграф звучал на 100% как-то, что я сделал бы в Sharepoint. Без труда! – Chris

Смежные вопросы