2012-02-12 3 views
2

У меня есть приложение WPF и база данных SQL Server с таблицей Users. У каждого пользователя есть своя строка, включая хешированный пароль и роль в таблице Users.Пользовательская проверка подлинности в базе данных SQL Server

Мне нужно, чтобы они прошли проверку подлинности в моем приложении и сохраняли какие-то учетные данные, включая роль. Основываясь на этой роли, они будут видеть только то, что они должны видеть.

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

Спасибо за любую помощь, JiKra


Ok, я думал, а как насчет использовать синглтон? Пользователь аутентифицируется, я захватываю его роль из базы данных, создаю экземпляр синглтона, устанавливаю его учетные данные и использую их в своем приложении. Правильно ли это? Это самый простой способ сделать это? JiKra

+0

Является ли это двухуровневым приложением, когда клиент WPF напрямую связывается с базой данных или трехуровневым приложением, когда клиент WPF разговаривает с веб-сервером/службой, который ведет переговоры с базой данных? –

+0

Изучите превосходную серию из нескольких частей в [Подсистеме членства и роли ASP.NET] (http://www.4guysfromrolla.com/articles/120705-1.aspx) - вы можете использовать, если из WPF тоже - нет проблем - и он уже существует, он доступен, он работает, и он доказал свою ценность в тысячи раз. –

+0

Jared: Я использую наборы данных, чтобы напрямую общаться с базой данных. – JiKra

ответ

1

«Функциональная модель», как вы ее называете, может быть основана на API-интерфейсах MembershipProvider/RoleProvider. Там в видео-учебник Тодд Миранда:

http://windowsclient.net/learn/video.aspx?v=293710

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

Также обратите внимание на потенциальную угрозу безопасности, я добавил комментарий по вашему вопросу.

+0

Хорошо, я посмотрю. Какой-то статический класс или синглтон - это то, что я считал решением ... – JiKra

+0

@JiKra: применительно к вашему комментарию, если ваше приложение использует интегрированную защиту, то для чего вы храните дополнительные пароли? –

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