2012-07-03 2 views
0

Я использую проверку подлинности Windows на веб-сайте, но хочу иметь уровни доступа. В настоящее время я использую синтаксис [Authorize (Users = "userA")].Аутентификация Windows - проверка подлинности многочисленных пользователей

Однако, с более чем 20 учетными записями Windows, обращающимися к сайту, я не хочу иметь жесткий код в двадцати пользователей с каждым утверждением авторизации. Более того, некоторые пользователи должны иметь другой доступ, чем другие. Я подумал о том, чтобы иметь список пользователей, который выполняет асинхронный запрос CustomAuthorizationAttribute, чтобы узнать, есть ли среди них желаемый пользователь.

В принципе, я пытаюсь получить роли без использования проверки подлинности с помощью форм.

Каков наиболее эффективный, самый простой способ сделать это?

ответ

0

Ваш ответ лежит в домене ActiveDirectory. Так как вы используете MVC 3 вы должны иметь доступ к следующим функциям имен «Услуги управления учетными записями Справочник»:

http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx

Вы можете увидеть эту статью для описания всего процесса внизу, он предоставляет примеры кода для использования сразу из коробки:

http://msdn.microsoft.com/en-us/magazine/cc135979.aspx

Forwarning: Вы также должны создать строку подключения LDAP. LDAP - это протокол, используемый для извлечения этой информации из базы данных защищенных окон.

http://technet.microsoft.com/en-us/library/aa996205(v=exchg.65).aspx

Чтобы увидеть код используется в действии:

http://www.willasrari.com/blog/query-active-directory-users-using-c/000133.aspx

Я сделал что-то похожее на это в среде .NET 3.5 с помощью IIS 7.

+0

Спасибо. Я попробую. – Skitterm

+0

Кажется, у меня должен быть dcpromo, чтобы сделать эту работу. Я попытался запустить его в командной строке, но он сказал, что «окна не могут найти« dcpromo ». – Skitterm

+0

Вы пытаетесь настроить компьютер, на котором вы работаете, как первичный контроллер домена? Эти функции будут включены, если у вас есть ОС Windows Server. Вы также должны убедиться, что ваш Active Directory включен, есть учебники онлайн, чтобы узнать об этом. Эта ссылка показывает, как включить ее под Windows 7: http://snippetsandhelp.blogspot.com/2011/01/installing-active-directory-tools-under.html – sksallaj

0

One из лучших статей, которые я когда-либо читал о ролевой авторизации: Role-Based Authorization With Forms Authentication (Part 2) К Darren Neimke и Скотт Митчелл. Они написали его для ASP.NET 2.0, и никакая концепция не была изменена в версии 4.0 (и 4.5, насколько я знаю).

Чтобы стать мастером в этой области, читайте этот MSDN и всю ее главы:

Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication