/// <summary> /// Initializes a new instance of the <see cref="DbRolesProviderNode"/> /// class with the specified <see cref="DbRolesProviderData"/>. /// </summary> /// <param name="dbRolesProviderData">A <see cref="DbRolesProviderData"/> object.</param> public DbRolesProviderNode(DbRolesProviderData dbRolesProviderData) : base(dbRolesProviderData) { this.dbRolesProviderData = dbRolesProviderData; this.onDatabaseRemoved = new ConfigurationNodeChangedEventHandler(this.OnDatabaseRemoved); this.onDatabaseRenamed = new ConfigurationNodeChangedEventHandler(this.OnDatabaseRenamed); }
/// <summary> /// Overridden from SecurityRolesProvider. Retrieves the list of user roles /// from the underlying database. /// </summary> /// <param name="userIdentity">Identity of user used for retrieval</param> /// <returns>String array of roles for the given user identity</returns> protected override string[] CollectAllUserRoles(IIdentity userIdentity) { //Copy each role name into a string array DbRolesProviderData dbRolesProviderData = (DbRolesProviderData)securityConfigurationView.GetRolesProviderData(ConfigurationName); UserRoleManager manager = new UserRoleManager(dbRolesProviderData.Database, securityConfigurationView.ConfigurationContext); DataSet dsRoles = manager.GetUserRoles(userIdentity.Name); StringBuilder tmpRoles = new StringBuilder(); foreach (DataRow row in dsRoles.Tables[0].Rows) { tmpRoles.Append(row["RoleName"]); tmpRoles.Append(","); } return(tmpRoles.ToString().TrimEnd(',').Split(',')); }