Преобразование простого пароля в пароль членства .NET HASH в T-SQL

У нас есть система, которая хранит имя пользователя/пароль в виде обычного текста. Меня попросили сообщить об этом членству.

Я хотел бы, чтобы функция SQL преобразовывала обычный текстовый пароль в .NET Membership Hashed password. Единственная функция HashBytes, которую я нашел, даже близко не соответствует тому, что я вижу в таблице .NET Membership.

Я в отчаянии. Пожалуйста помоги.


person RealSollyM    schedule 07.06.2013    source источник
comment
вы должны использовать .net для этого.   -  person Daniel A. White    schedule 07.06.2013
comment
Возможный дубликат stackoverflow.com/questions /287517/   -  person Pawan    schedule 07.06.2013


Ответы (1)


Я узнал, что вы не можете сгенерировать тот же алгоритм HASH в T-SQL, и лучший способ — просто прочитать вашу базовую таблицу на стороне ASP.net, а затем вызвать сценарий членства для вставки пользователей. Это также сокращает время.

DataSet dtData = DivDatabase.ExecuteSQLString("SELECT * FROM Users");   

foreach (DataRow row in dtData.Tables[0].Rows)
{
    MembershipUser mUser = null;
    mUser = Membership.GetUser(row["Username"].ToString());
    if (mUser == null)
    {
        mUser = Membership.CreateUser(row["Username"].ToString(), row["Password"].ToString(), row["Email"].ToString() );
    }
}

Сначала я проверяю, не находится ли имя пользователя в системе. Это потому, что у меня были дублирующиеся имена пользователей, и я хотел их устранить. Для получения дополнительной информации из старой таблицы, которая не существует в таблицах членства, мы договорились с высшим руководством о том, что мы не собираемся использовать профиль членства, поскольку на него нелегко писать запросы. Но я добавил пример кода для справки.

var profile = System.Web.Profile.ProfileBase.Create(row["Username"].ToString());
profile.SetPropertyValue("FirstName", row["FirstName"].ToString());
profile.SetPropertyValue("LastName", row["LastName"].ToString());
profile.Save();

Я надеюсь, что вы найдете это полезным.

person RealSollyM    schedule 10.06.2013