Вручную добавить пользователя в базу данных ASP.NET?

Поэтому, когда вы используете мастеров ASP.NET для создания входа в систему, он использует набор автоматически сгенерированных таблиц с помощью инструмента aspnet_regsql.exe...

Когда вы создаете пользователя с помощью мастера, он генерирует очень длинный идентификатор пользователя «a40cf936-1596-4560-a26c-450792e2c8c0». Я хочу добавить пользователей с помощью другой программы, которая подключается к этой базе данных... но как визуальная студия автоматически генерирует это Я БЫ. Я тоже хочу автоматически генерировать

Любые идеи? Заранее спасибо. -Скотт


person Scott    schedule 11.06.2010    source источник
comment
Почему вы пишете напрямую в БД вместо использования интерфейса MembershipProvider?   -  person Frank Schwieterman    schedule 11.06.2010
comment
Веб-сайт является расширением приложения Windows на С#, которое я пишу. Пользователь взаимодействует с программой, и при необходимости веб-сайт обновляется соответствующим образом, например, при добавлении новых пользователей.   -  person Scott    schedule 12.06.2010
comment
Возможно, вы захотите проверить ASP.NET MVC Membership Starter Kit, это простой сайт, который позволяет вам изменять пользователей, настроенных через ASP.NET MembershipProvider.   -  person Frank Schwieterman    schedule 16.06.2010


Ответы (2)


Как сказал Фрэнк, вы должны использовать интерфейс MembershipProvider.

Чтобы напрямую ответить на ваш вопрос, с вероятностью 99% это число является просто GUID. Получить его так же просто, как:

string idText = System.Guid.NewGuid().ToString();

РЕДАКТИРОВАТЬ: Просто чтобы было ясно, я не рекомендую это. Вероятно, есть другие зависимости, права и роли в разных таблицах, которые вы неправильно реализуете, если не используете правильные вызовы API. Вам следует заглянуть сюда.

person Serapth    schedule 11.06.2010
comment
На самом деле, это 100% вероятность того, что это GUID, так как это то, что поставщик аутентификации ASP.NET использует для пользовательских ключей. - person GalacticCowboy; 12.06.2010
comment
Кроме того, +1 за ваше редактирование — если вы не знаете, что делаете, не делайте этого вручную! - person GalacticCowboy; 12.06.2010
comment
Спасибо вам за быстрый ответ. Это очень полезно, так как я буду изменять базу данных за пределами asp.net, единственный вариант, который я вижу, это делать это вручную, большое спасибо :) - person Scott; 12.06.2010

Загрузите .Net Reflector и просмотрите исходный код AspNetMemembershipProvider. Вероятно, вы сможете найти там все нужные вам вызовы SQL. Кроме того, я думаю, вы сможете создать экземпляр класса вне ASP.NET. Существует метод AspNetMembershipProvider.Initialize(), который вы можете вызвать для инициализации на основе того, что у вас было бы в файле конфигурации. Параметры для Initialize() не очевидны, но разберите их в рефлекторе и все поймете.

person Frank Schwieterman    schedule 16.06.2010
comment
Спасибо .. Я буду изучать это - person Scott; 08.09.2010