2014-02-20 4 views
0

У меня возникла проблема:Правила множественного доступа к страницам в ASP.NET

У меня есть проект с успешной логикой входа. Я использовал систему входа в систему, а затем написал код, чтобы проверить, соответствует ли пользователь и пароль из Login Control той, что находится в БД.

На сопрягая пары, это происходит:

if (authenticated) 
     { 
      FormsAuthentication.RedirectFromLoginPage(LoginControl.UserName, LoginControl.RememberMeSet); 
     } 

и после входа в я могу получить доступ к/попадаю к Members.aspx в отделенной папку и с

<authorization> 
     <deny users="?"/> 
    </authorization> 

в web.config I запретить пользователям доступ к этой папке.

Но мне нужно отделить папку членов из папки администрирования.

У меня есть дополнительная колонка в таблице «Пользователи» в БД, которая сообщает мне, является ли пользователь администратором или нет.

Как я могу предоставить администраторам дополнительные права или ограничить доступ обычных пользователей в доступе к папке администрирования?

ответ

1

Если я вас правильно понял и выше код работает вы можете запретить некоторые страницы, как это ..

<location path="AdminPage.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Admins" /> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
</location> 

запрещающих пользователи = «*» будет отрицать все, если они не имеют доступа. Вот как это делается в их жизни. Надеюсь это поможет.

Затем при входе в систему вы можете проверить, является ли этот пользователь администратором или нет. Если они есть, они могут получить доступ к этой странице, если это не так, они не могут. Я использую Active Directory в настоящее время, но вы можете использовать SQL или Linq для Sql, чтобы проверить, являются ли они администратором или нет.

EDIT: Вот некоторые ссылки, которые могут помочь вам в правильном направлении.

Link One этот «устаревший», но он покажет вам, как это было рекомендовано раньше.

Link Two

Link Three Это один показывает вам, как настроить SqlMembershipProvider.

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

+0

Удивительный, надеялся на что-то подобное. Как установить роль? – SubjectX

+0

Просто имейте в виду, что я не использую WSAT (http://www.codeproject.com/Articles/342061/Understanding-ASP-NET-Roles-and-Membership-A-Begin). – SubjectX

+0

Это будет получить немного сложнее. Вам нужно будет проверить, является ли пользователь администратором загрузки страницы. Если пользователь не является администратором, вам необходимо перенаправить их на «Не авторизированную страницу». Насколько я знаю, я не думаю, что вы можете использовать «Разрешить роли» в webconfig. Если вы используете подход sql, вам придется изменить «deny users =» * «», чтобы запретить пользователям = «?». В основном вы разрешаете каждому пользователю доступ ко всей странице, но используйте ваш SQL для проверки, являются ли они администратором или нет. Если нет, перенаправьте их. – Humpy

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