2016-02-01 3 views
0

Возможно ли использовать проверку подлинности на основе роли без использования БД?Аутентификация ролей без использования базы данных

У меня есть одноразовое веб-приложение, в котором в основном будет только 1 пользователь admin.

Остальные пользователи будут иметь доступ только к страницам в определенной папке, в то время как один пользователь-администратор будет иметь доступ к страницам во всех папках.

Все, что я искал до сих пор, имеет роли, связанные с db.

ответ

1

В зависимости от того, какие технологии вы используете, вы можете переопределить методы аутентификации и жесткого кода имя пользователя и пароль на что-то в вашем файле web.config. Вы также можете указать пользователей через файлы web.config в разделе авторизации.

<authorization> 
    <allow users="localAdmin\myAdminUser" /> 
</authorization> 

и код аутентификации:

if (authenticated_username == webConfigUsername && autheticated_password == webConfigPassword) { 
    FormsAuthentication.SetAuthCookie(authenticated_username, true); 
    return Redirect("/"); 
} 

Или вы можете добавить пользователя с правами администратора в процессе аутентификации к группе и сделать безопасность через членство в группе:

<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="admins"/> 
     <deny users="?"/> 
    </authorization> 
    </system.web> 
</configuration> 

И дал ваш вопрос/комментарий, я бы посмотрел на внедрение поставщика роли клиента. Основой этого было бы внедрение методов, необходимых для того, чтобы получить основы работы вашего приложения. Вместо того, чтобы идти в БД, вы, скорее всего, будете работать с объектом Session. Отметьте MSDN о том, как создать поставщика настраиваемой роли. Затем вы сможете сохранить свои файлы в файле web.config в чистоте, а затем просто поместите роли, которыми пользуются пользователи, с помощью переопределений, основанных на именах пользователей.

+0

Я пытаюсь сделать членство в группе через web.config. Однако я не уверен, как установить роль в коде. Я пробовал Roles.AddUserToRole, но это когда он генерирует ошибку SqlException. – PrivateJoker

+0

Это будет самый простой маршрут? В основном у меня есть папка с страницами, к которой только один пользователь сможет получить доступ. – PrivateJoker

+0

Самый простой способ - использовать проверку подлинности Windows, запретить пользователям, не прошедшим проверку подлинности, с помощью web.config, а затем разрешить в папке администратора конкретный пользователь, который является администратором. Таким образом, вы сохраняете аутентификацию .config, вы забываете о базе данных и защищаете приложение. – Josh

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