2015-10-24 3 views
0

Я пытаюсь использовать роли ASP.NET MVC. Я добавил запись в web.config:Где сохраняются роли ASP.NET?

<connectionStrings> 
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\resorg-db.mdf;Integrated Security=True"/> 
    </connectionStrings> 

    <system.web> 
    <authentication mode="None" /> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <roleManager enabled="true" /> 
    </system.web> 

у меня нет миграции включены, потому что теперь я предпочитаю иметь БД воссозданы при каждом изменении модели.

Я programaticaly добавить роль в методе Initialize DB, как:

Roles.CreateRole("root"); 
Roles.AddUserToRole(testUser.UserName, "root"); 
context.SaveChanges(); 

Проблема: Когда я запускаю это в первый раз, все было прекрасно. Когда я меняю модель и снова запускаю метод инициализации, я получаю сообщение о том, что эта роль уже существует. Я просмотрел базу данных с помощью Server explorer, но оба AspNetRoles и AspNetUserRoles пусты. Где сохраняются роли? В той же папке с моей БД есть еще один db, называемый aspnetdb.mdf.

Я попытался открыть его с помощью SysTools MDF Viewer 1.0, но у меня был неверный формат.

Бонус вопрос: У меня также есть несколько тестов в другом проекте. Это воссоздает БД и выполняет те же тесты. Моя проблема заключается в том, что я получил эту ошибку:

System.Configuration.Provider.ProviderException: The Role Manager feature has not been enabled. 

хотя я добавил тот же элемент в моем app.config для UnitTest проекта.

+0

это вызывающе в 'AspNetRoles', попробуйте обновить содержимое таблицы, вы сказали, что у вас есть 2 созданных БД, вы сами создали один из них? – LiranBo

+0

Обнаружена проблема: мне нужно добавить строку подключения в запись roleManager. Если нет строки подключения, ASP.net создаст другую БД для хранения роли. См. Http://stackoverflow.com/questions/8911738/asp-net-membership-roles-saved-on-different-database – AndreiM

ответ

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