Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C# ASP.NET/MSSQL] Categorieselectie vanuit Database *

Pagina: 1
Acties:

  • Kyoshi
  • Registratie: December 2006
  • Laatst online: 18-11 20:51
Ik ontwikkel een webapplicatie die een aantal records weergeeft vanuit de database gebaseerd op catagoriën. Ik werk vanuit een bestaande situatie en heb het databaseontwerp niet zelf gemaakt.

Nu wil ik door middel van door mijn gebruikers rechten te geven de beschikbare mogelijkheden beperken.

Het relevante database gedeelte ziet er zo uit:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
=nivo1=
Level1    Description
A         blabla
B         niet belangerijk
C
D
E
...
Y
Z

=nivo2=
Level1 Level2   Description
A        1
A        2
A        3
B        1
C        1
C        2
.....
Y        3
Z        1


Enzovoort, dit gaat tot level4 door. Elk Level is aan een DropDownList op de webpagina verbonden door middel van een SQL datasource.

De uiteindelijke SQL query ziet er ongeveer zo uit:

SQL:
1
2
3
SELECT * 
FROM items 
WHERE level1 ='A' AND level2 =1 AND level3='F' AND level4 =5;


Kan iemand mij wat tips geven hoe ik het beste ervoor kan zorgen dat vanuit de database al op een manier geselecteerd wordt wat die gebruiker dan mag/kan selecteren op de webpagina?

[ Voor 4% gewijzigd door een moderator op 16-02-2008 02:09 . Reden: Code tags toegevoegd aan 'tabellen' ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
offtopic:
Categorie ;)


Ik snap niet helemaal wat je bedoelt; heb je nu 4 tabellen (nivo1 t/m 4)? Of mis ik iets? Want waar komt dan de select * from items vandaan? En waarvoor staan A/Z dan? En hoe ziet items er dan uit? En waar komen die rechten dan terug (of zouden die terug moeten komen)?

Ik denk dat je je probleem toch wat duidelijker uit moet leggen, want hier kan ik geen touw aan vastknopen ;)

[ Voor 11% gewijzigd door RobIII op 16-02-2008 02:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:01
Ik vermoed dat die query die records uit items gaat selecteren de items (controls?) ophaalt die de huidige gebruiker mag zien , omdat hij enkel rechten heeft om de logica die achter die controls zit, uit te voeren ?

https://fgheysels.github.io/


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 00:11

The Eagle

I wear my sunglasses at night

Al zet je het een beetje vaag in je post, toch is het wel een bekend mechanisme :)
Dwz: ik werk er min of meer dagelijks mee. ERP-systeem?

Grote vraag is: wat wil je beveiligen?
Als dat om data gaat, kun je denk ik het beste een (of meerdere) views maken op de tabellen waarin alle regels staan keyed bij je gebruikers-id uit je gebruikerstabel. Dan kun je hem namelijk blijven gebruiken, tenzij je hele grote veranderingen in je security setup maakt natuurlijk ;)
In dat laatste geval zul je je view aan moeten passen.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Kyoshi
  • Registratie: December 2006
  • Laatst online: 18-11 20:51
Ik heb het inderdaad niet echt duidelijk uitgelegd, maar ik zie dat het desalniettemin toch duidelijk is geworden.

Op de webpagina staan 4 controls:

DropDownList1:
SQL:
1
SELECT DISTINCT level1 FROM nivo1;



DropDownList2:
SQL:
1
SELECT DISTINCT level2 FROM nivo2 WHERE nivo1 =DropDownlist1.SelectedValue;


DropDownList3:
SQL:
1
SELECT DISTINCT level3 FROM nivo3 WHERE nivo2=DropDownlist2.SelectedValue;


DropDownList4:
SQL:
1
SELECT DISTINCT level4 FROM nivo4 WHERE nivo3=DropDownlist3.SelectedValue;


De 4 tabellen/controls zijn dus aan elkaar gevonden en veranderen dus met wat er een nivo hoger gebeurt.

Nu is dit de situatie:
Niet alle gebruikers (die ik via een eigen systeem op de webapplicatie laat inloggen) mogen alle mogelijke resultaten zien die met de controls te maken zijn.

Bijvoorbeeld:
Gebruiker 1 mag level1, catagorie A zien en lager. (A2, A1C4, A3A enzovoort)

Gebruiker 2 mag level1, catagorie C,B en Z zien en lager (B1C, Z4T1)

Wat ik nu wil:

Ik wil door middel van door de query in de DropDownLists zonadig aan te passen dat gebruikers alleen kunnen selecteren wat ze ook mogen zien. Het probleem is, hoe ga ik dat vanuit de database (of een andere) manier duidelijk maken? Hoe ga ik dus bijvoorbeeld duidelijk maken dat als de username Gebruiker1 is, dat bij DropDownList1 alleen "A" als mogelijke selectie aangeboden wordt, en bij Gebruiker2 C, B en Z?

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 18-11 22:35
Een tabel met rechten?

Nivo1Rechten met daarin het nivo1_id en de gebruiker_id, en dan mag je er wel in.

Dan kan je in je query aangeven dat hij alleen items mag showen waarin een koppeling is met het huidige userid in de rechten tabel.

  • Kyoshi
  • Registratie: December 2006
  • Laatst online: 18-11 20:51
Bedankt, ik denk dat ik er zo wel uit kom.
Pagina: 1