Как указывает "Rune FS" в комментариях, вы настроили строки подключения к базе данных для использования встроенной аутентификации, что хорошо, поскольку вы не храните явные имена пользователей и пароли в своих файлах конфигурации.
Однако вам необходимо знать, откуда он получает «интегрированные» учетные данные - в этом случае учетные данные пользователя, под которым работает IIS (или VS Dev Server), используются для подключения к базе данных.- если он использует ваше имя для входа в Windows, я предполагаю, что вы используете либо IIS Express, либо сервер разработки VS?
Я полагаю, что проблема у вас заключается в том, что при включении диспетчера ролей выне настроили его, и вы оставили включенной строку подключения по умолчанию LocalSqlServer
, также указывающую на базу данных с именем aspnetdb
- по умолчанию будет пытаться использовать поставщик диспетчера ролей по умолчанию, который использует подключение LocalSqlServer.
Измените элемент <rolemanager />
следующим образом:
<rolemanager enabled="true" defaultProvider="MyRoleProvider" >
<providers>
<clear />
<add name="MyRoleProvider"
applicationName="/"
connectionStringName="modelConnectionString"
type="System.Web.Security.SqlRoleProvider" />
</providers>
</rolemanager>
Я бы также рекомендовалудаление строки соединения LocalSqlServer
, если вы ее не используете, чтобы избежать путаницы.