internal override void DeleteRoles(string user, DbProviderFactory factory, DbConnection connection) { DbCommand command = DatabaseBase.GetCommand(connection); List <string> strs = new List <string>(); string[] database = new string[] { "SELECT sysusers1.name AS [role] FROM dbo.sysmembers sysmembers INNER JOIN dbo.sysusers sysusers1 ON sysmembers.groupuid = sysusers1.uid inner join ", connection.Database, "..sysusers sysusers2 ON sysmembers.memberuid = sysusers2.uid WHERE sysusers2.name = '", user, "'" }; using (DbDataReader dbDataReaders = base.ExecuteReader(string.Concat(database), command)) { while (dbDataReaders.Read()) { strs.Add(dbDataReaders.GetString(0)); } } foreach (string str in strs) { try { string[] strArrays = new string[] { "sp_droprolemember '", str, "','", user, "'" }; base.ExecuteNoneQuery(string.Concat(strArrays), command); } catch (Exception exception) { throw exception; } } }
internal void RemoveUser(DBInfoDTO dmInfoDto, string user, bool all) { DbProviderFactory providerFactory = this.GetProviderFactory(); using (DbConnection connectionString = providerFactory.CreateConnection()) { connectionString.ConnectionString = this.GetConnectionString(dmInfoDto); connectionString.Open(); this.DeleteUser(user, dmInfoDto, providerFactory, DatabaseBase.GetCommand(connectionString)); } }
internal override void AddUserInDB(string user, string password, string[] roles, DbProviderFactory factory, DbConnection connection) { DbCommand command = DatabaseBase.GetCommand(connection); try { base.ExecuteNoneQuery(string.Format("sp_addlogin '{0}', '{1}'", user, password), command); } catch (SqlException sqlException) { if (sqlException.Number != 15025) { throw; } } string serverVersion = connection.ServerVersion; try { serverVersion.CompareTo("09.00.00.0"); } catch (SqlException sqlException1) { throw sqlException1; } try { base.ExecuteNoneQuery(string.Format("sp_adduser '{0}'", user), command); } catch (SqlException sqlException2) { if (sqlException2.Number != 15023) { throw; } } if (roles != null) { string[] strArrays = roles; for (int i = 0; i < (int)strArrays.Length; i++) { string str = strArrays[i]; if (string.Compare(str, "public", true) != 0) { base.ExecuteNoneQuery(string.Format("sp_addrolemember '{0}', '{1}'", str, user), command); } } } base.ExecuteNoneQuery(string.Format("sp_password null,'{0}','{1}'", password, user), command); }
internal void RemoveLogin(DBInfoDTO dmInfoDto, string user) { try { DbProviderFactory providerFactory = this.GetProviderFactory(); using (DbConnection connectionString = providerFactory.CreateConnection()) { connectionString.ConnectionString = this.GetConnectionString(dmInfoDto); connectionString.Open(); this.Kill(user, connectionString); this.DeleteLogin(user, dmInfoDto, providerFactory, DatabaseBase.GetCommand(connectionString)); } } catch { } }