using System.Configuration;\r
using System.Globalization;\r
using System.Web.Profile;\r
-using System.Web.Configuration;
+using System.Web.Configuration;\r
+using System.Configuration.Provider;
using System.Collections.Specialized;\r
using System.Text;\r
using System.IO;\r
public class DerbyProfileProvider : ProfileProvider
{\r
ConnectionStringSettings _connectionString;\r
- string _applicationName = "";
+ string _connectionStringName = string.Empty;\r
+ string _applicationName = string.Empty;
public DerbyProfileProvider ()
{
\r
DbConnection CreateConnection ()\r
{\r
+ if (_connectionString == null)\r
+ throw new ProviderException (String.Format ("The connection name '{0}' was not found in the applications configuration or the connection string is empty.", _connectionStringName));\r
+ \r
DerbyDBSchema.CheckSchema (_connectionString.ConnectionString);\r
\r
OleDbConnection connection = new OleDbConnection (_connectionString.ConnectionString);\r
_applicationName = GetStringConfigValue (config, "applicationName", "/");\r
\r
ProfileSection profileSection = (ProfileSection) WebConfigurationManager.GetSection ("system.web/profile");\r
- string connectionStringName = config ["connectionStringName"];\r
- _connectionString = WebConfigurationManager.ConnectionStrings [connectionStringName];\r
+ _connectionStringName = config ["connectionStringName"];\r
+ \r
+ if (_applicationName.Length > 256)\r
+ throw new ProviderException ("The ApplicationName attribute must be 256 characters long or less.");\r
+ if (_connectionStringName == null || _connectionStringName.Length == 0)\r
+ throw new ProviderException ("The ConnectionStringName attribute must be present and non-zero length.");
\r
- DerbyDBSchema.RegisterUnloadHandler (_connectionString.ConnectionString);\r
+ _connectionString = WebConfigurationManager.ConnectionStrings [_connectionStringName];\r
+\r
+ if (_connectionString != null)\r
+ DerbyDBSchema.RegisterUnloadHandler (_connectionString.ConnectionString);\r
}\r
\r
private ProfileInfoCollection BuildProfileInfoCollection (DbDataReader reader, int pageIndex, int pageSize, out int totalRecords)\r