ASP.NET MVC Аутентификация пользователя - почему она должна быть такой сложной? - PullRequest
0 голосов
/ 24 декабря 2009

Я пытаюсь использовать ASP.NET MVC для моего нового проекта, и ожидалось, что аутентификация пользователя там должна быть довольно простой. Моя цель - создать отдельную таблицу базы данных пользователей в моей основной базе данных.

Я подумал, что SqlTableProfileProvider должен быть решением. Поэтому я добавил соответствующую таблицу в свою базу данных и изменил файл web.config. Но, похоже, что бы я там не менял, мое веб-приложение все еще использует аутентификацию по умолчанию (через файл ASPNETDB.mdf).

В чем может быть проблема?

(начало моего файла web.config:)

Ответы [ 2 ]

1 голос
/ 16 марта 2010

Делайте то, что я делаю, и забудьте о прокрутке вашего собственного поставщика членства и т. Д. Или использовании sqltableprofileprovider - вместо этого расширьте таблицы, которые членство по умолчанию добавляет через отношения к вашим собственным таблицам, которые содержат дополнительные данные, которые вы хотите сохранить. *

Итак, добавьте в свою базу данных еще одну таблицу, например, «Детали», а затем установите первичный ключ, который должен быть связан с 1 по 1, с первичным ключом таблицы aspnet_Users. Используйте эту новую таблицу, как и любую другую. Если вам нужен первичный ключ пользователя, используйте API членства, чтобы получить его.

не проверено!

Guid userID = (Guid)Membership.GetUser(username).ProviderUserKey;

Затем добавьте данные, которые вам нужны, в таблицу данных и в ваш набор.

Мне кажется, что он более гибок - хотя, наверное, я все делаю неправильно! :)

1 голос
/ 24 декабря 2009

См. справку о том, как создавать стандартные таблицы служб приложений и связанные объекты базы данных в базе данных SQL-сервера. После этого нужно просто изменить строку подключения служб приложений по умолчанию в файле web.config, чтобы использовать встроенные поставщики для членства, ролей и профилей.

...