/// <summary> /// Ensures that table for the permission entries exists in the database /// </summary> /// <param name="databaseConfiguration"></param> private void CreatePermissionsTableIfNotExist(DatabaseSecurityConfiguration databaseConfiguration) { using (var connection = new SqlConnection(databaseConfiguration.ConnectionString)) { connection.Open(); var sql = $@" IF NOT EXISTS ( SELECT * FROM sys.tables t WHERE t.name = '{databaseConfiguration.TableName}' ) CREATE TABLE [{databaseConfiguration.TableName}] ( [Id] [int] IDENTITY(1,1) NOT NULL, [User] [nvarchar](max) NULL, [Role] [nvarchar](max) NULL, [Feature] [nvarchar](max) NOT NULL, [HasAccess] [bit] NOT NULL CONSTRAINT [PK_{databaseConfiguration.TableName}] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] "; var command = new SqlCommand(sql, connection); command.ExecuteNonQuery(); } }
public PermissionTests() { _databaseConfiguration = new DatabaseSecurityConfiguration { ConnectionString = "Server=[SERVER];Database=[DB];User Id=[USR];Password=[PWD];", TableName = "Permissions2" }; _permissionProvider = new PermissionProvider(_databaseConfiguration); // Clear the database ClearDb(); }
/// <summary> /// CTOR /// </summary> /// <param name="configuration"></param> public PermissionProvider(DatabaseSecurityConfiguration configuration) { Configuration = configuration; CreatePermissionsTableIfNotExist(configuration); }