Web API and ASP.Net ID with SQL Server, not LocalDB

  • How to set an ASP.Net identifier to use a SQL Server database rather than LocalDB?

  • How to configure ASP.Net ID to use user level data?

Using Microsoft.AspNet.Identity.Core 1.0.0 and EntityFramework 6.0.0 in Web API.Net 4.5

Changes in Web.config:

<connectionStrings> <add name="myAppDB" connectionString="data source=.;Initial Catalog=mydb1;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> </connectionStrings> 

Error calling api / account / register

 {"Message":"An error has occurred.","ExceptionMessage":"An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.","ExceptionType":"System.Data.Entity.Core.ProviderIncompatibleException","StackTrace":" at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerSeres.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"The provider did not return a ProviderManifestToken string.","ExceptionType":"System.Data.Entity.Core.ProviderIncompatibleException","StackTrace":" at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) at System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection)","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details. )","ExceptionType":"System.Data.SqlClient.SqlException","StackTrace":" ..... 

And the Windows application event log

 Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user. 
+7
asp.net-identity
source share
1 answer

If you have not changed the basic configuration used by the MVC 5 web template, the connection string name for ASP.NET Identity is "DefaultConnection". Try creating a connection string with this name and configure it on the sql server.

If you used the web API template, the default value is “No Authentication”, as shown in the figure below.

Web API Template without Authentication

If the No Authentication option is selected, the corresponding assemblies for ASP.NET authentication are not installed, the account controller is not created, and web.config is not updated with the connection string. Note that MVC is still included in the template.

If you want to use the ASP.NET identifier, select "Modify Authentication" and select "Individual Accounts"

Web API Template with Authentication

Now you have all the necessary assemblies, ASP.NET Identity is connected in the launch configuration, and the default connection string is in your web.config.

  <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <connectionStrings> <add name="DefaultConnection" connectionString="Data Source= (LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-TestWebApiTemplateWithAuth20140218082219.mdf;Initial Catalog=aspnet-TestWebApiTemplateWithAuth- 20140218082219;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> 

Please note that you are also configured for the Entity Framework and have the correct builds for this. By default, ASP.NET Identity uses EF code to store data. By default, the local database is used. Just change this connection string to use SQL Server database.

If you want to change the underlying data warehouse to something other than the SQL Server tutorial, you can read it here . This specific guide shows how to change it to MySql.

+6
source share

All Articles