Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение пароля в SQL-Server, Как? 
:(
    Опции темы
Lamak
Дата 25.5.2006, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 8.5.2005
Где: Украина,Одесса

Репутация: нет
Всего: 7



Мы заводим нового пользователя,его логин и парроль должен хранится на SQL-Server.
Ну логин просто текстовое поле в таблице.

А пароль (я так понимаю это должно быть не "просто текстовое поле в таблице") ???
Как и где его там хранить (интересуют операции сохранения пароля в бд и чтение его)???

ЗЫ: наверное есть какие-то классы специально для етого предназначеные

  
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Softaz
Дата 26.5.2006, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 4
Всего: 16



А ты в базе данных не пароли храни, а ХЭШи паролей.

Далее вводимые пользователями пароли при авторизации ХЭШируй и сравнивай с ХЭШами в базе данных.

Примерно так.
Код

using System.Security.Cryptography;
using System.Text;
//...
string str = "Очень секретный пароль"; // Это строка, которую будем хэшировать.
string strHash = string.Empty; // А здесь будет результат в шестнадцатиричном виде
foreach (byte b in new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(str))) 
{
strHash += b.ToString("X2");
}
// Либо
// strHash = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(str)));

//Выводим ХЭШ
Console.WriteLine(strHash);
//Записываем в базу данных. Далее при авторизации проводим хэширование и сверяем с хэшем в базе данных.


md5- функция необратимого хэширования. То есть хэш (строки в твоем случае) получить легко, а вот из хэшаобратно строку - очень тяжело.
 
P.S.: До чего дошел smile  свои ответы копирую из разных форумов. Писать несколько раз одно и тоже лень. smile   

Это сообщение отредактировал(а) Softaz - 26.5.2006, 08:32


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Lamak
Дата 29.5.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 8.5.2005
Где: Украина,Одесса

Репутация: нет
Всего: 7



Softaz, способ хорош!
 Мне понравился, только я пишу диплом "Управление правами доступа" (с использованием ролей).
Но суть не в етом, а в следующем мне руководиль диплома дал уже готовую модель БД и там в таблице пользователей зарегестрированных в БД(а есть ещё юзеры зарегеные в винде,но это к делу не относится) только следующие поля

- логин
- имя
- время_действия_пароля

и всё.

Ну и я не думаю что в каком-то комерческом софте используется такой способ ,
наверное все таки есть какие-то возможности самого SQL-server . 
 
Вопрос остаётся тотже. smile  
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
mr.DUDA
Дата 30.5.2006, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Lamak, попробуй поищи stored procedur-ы для аутентификации юзера (не уверен на 100%, но возможно такие есть). И, кстати, ты имеешь ввиду таблицу пользователей в настройках безопасности SQL Server ? Или это какая-то другая таблица (обычная TABLE) ? 


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 30.5.2006, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 4
Всего: 16



Цитата(Lamak @  29.5.2006,  23:42 Найти цитируемый пост)

- логин
- имя
- время_действия_пароля


А может параллельно используются системные таблички (так и права легко выставить на БД)

Может пригодится.

Код

--=================================
-- Create certificate template
--=================================
IF EXISTS(
  SELECT * 
    FROM sys.certificates 
   WHERE name = N'<certificate_name, sysname, sample_certificate>'
)
DROP CERTIFICATE <certificate_name, sysname, sample_certificate>
GO

CREATE CERTIFICATE <certificate_name, sysname, sample_certificate> 
    ENCRYPTION BY PASSWORD = <certificate_password, sysname, '1()ds5274-785$0HA05432-22379;}'>
    WITH SUBJECT = <certificate_subject, sysname, 'MySampleCertificate'>;
GO



Код

-- ==========================================
-- Create Login For SysAdmin User template
-- ==========================================

CREATE LOGIN [<domain_name,,domain>\<user_name,,windows_user>] FROM WINDOWS WITH DEFAULT_DATABASE= <default_database, sysname, master>
GO
EXEC master..sp_addsrvrolemember @loginame = N'<domain_name,,domain>\<user_name,,windows_user>', @rolename = N'sysadmin'
GO


Код

-- =================================================
-- Create SQL Login Must Change Password template
-- =================================================

CREATE LOGIN <SQL_login_name, sysname, login_name> 
    WITH PASSWORD = N'<password, sysname, Change_Password>' 
    MUST_CHANGE,
    CHECK_POLICY = <check_policy,ON or OFF, ON>;
GO



Код

-- ======================
-- Drop Login template
-- ======================

DROP LOGIN <login_name, sysname, login_name>
GO


Код

-- ================================
-- Create Database Role template
-- ================================
USE <database_name, sysname, AdventureWorks>
GO

-- Create the database role
CREATE ROLE <role_name, sysname, Production_Owner> AUTHORIZATION [dbo]
GO

-- Grant access rights to a specific schema in the database
GRANT 
    ALTER, 
    CONTROL, 
    DELETE, 
    EXECUTE, 
    INSERT, 
    REFERENCES, 
    SELECT, 
    TAKE OWNERSHIP, 
    UPDATE, 
    VIEW DEFINITION 
ON SCHEMA::<schema_name, sysname, Production>
    TO <role_name, sysname, Production_Owner>
GO

-- Add an existing user to the role
EXEC sp_addrolemember N'<role_name, sysname, Production_Owner>', N'<user_name, sysname, user_name>'
GO



Код

-- ============================
-- Drop Role Member template
-- ============================

USE <database_name, sysname, AdventureWorks>
GO

-- Create the database role
CREATE ROLE <role_name, sysname, Production_Owner> AUTHORIZATION [dbo]
GO

-- Grant access rights to a specific schema in the database
GRANT 
    ALTER, 
    CONTROL, 
    DELETE, 
    EXECUTE, 
    INSERT, 
    REFERENCES, 
    SELECT, 
    TAKE OWNERSHIP, 
    UPDATE, 
    VIEW DEFINITION 
ON SCHEMA::<schema_name, sysname, Production>
    TO <role_name, sysname, Production_Owner>
GO

-- Add an existing user to the role
EXEC sp_addrolemember N'<role_name, sysname, Production_Owner>', N'<user_name, sysname, user_name>'
GO

-- Drop the user from the role
EXEC sp_droprolemember N'<role_name, sysname, Production_Owner>', N'<user_name, sysname, user_name>'



Код

-- =====================
-- Drop Role template
-- =====================

USE <database_name, sysname, AdventureWorks>;
GO

-- Create the database role
CREATE ROLE <role_name, sysname, Production_Owner> AUTHORIZATION [dbo];
GO

-- Drop the role
DROP ROLE <role_name, sysname, Production_Owner>;
GO



Код

-- =============================
-- Create Bound Rule template
-- =============================
-- This feature is marked for deprecation

USE <database_name, sysname, AdventureWorks>
GO

-- Define the rule for use in the database
CREATE RULE <schema_name,sysname,dbo>.<rule_name, sysname,positive_value>
AS
    @value >= 0
GO

-- Bind the rule to a specific column in a table
EXEC sp_bindrule 
    '<schema_name,sysname,dbo>.<rule_name, sysname,positive_value>',
    '<table_schema_name,,Sales>.<table_name,,SalesOrderDetail>.<column_name,,OrderQty>'
GO



Код

-- =============================
-- Unbind Rule template
-- =============================
-- This feature is marked for deprecation

USE <database_name, sysname, AdventureWorks>
GO

-- Assumes that designated column has a bound rule
-- Unbind the rule from the column
EXEC sp_unbindrule
    '<table_schema_name,,Sales>.<table_name,,SalesOrderDetail>.<column_name,,OrderQty>'
GO

 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.