コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
ファイル: PermissionTests.cs プロジェクト: dedurus/Signals
        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();
        }
コード例 #3
0
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="configuration"></param>
 public PermissionProvider(DatabaseSecurityConfiguration configuration)
 {
     Configuration = configuration;
     CreatePermissionsTableIfNotExist(configuration);
 }