Προς το περιεχόμενο

asp.net 3.5 - δικαιώματα χρηστών και εμφάνιση δεδομένων


JohnDD

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα,

 

Έχω συνδέσει μια βάση δεδομένων με τη χρήση του SqlDataSource (η βάση είναι φτιαγμένη με SQLServer 2008) και θέλω να τη συνδέσω με τη default βάση ASPNETDB.MDF που δημιουργεί αυτόματα η .net για την υποστήριξη λογαριασμών χρηστών.

 

Για να γίνω πιο σαφής θέλω ο κάθε χρήστης να συνδέεται στη βάση δεδομένων (αφού έχει κάνει login) και να ανακτά/τροποποιεί μόνο τα δικά του δεδομένα.

 

Καμιά ιδέα?

Ευχαριστώ!

Δημοσ.

Τι εννοείς μόνο τα δικά του δεδομένα; Στην aspnetdb.mdf δεν αποθηκεύονται πληροφορίες σχετικά με το ποιά δεδομένα ανήκουν σε ποιόν. Αυτό πρέπει να το υλοποιήσεις εσύ.

 

Ο χρήστης θα συνδέεται απευθείας στην βάση δεδομένων ή θα μπαίνει στην εφαρμογή σου και εκεί θα γίνεται ο έλεγχος;

Για την πρώτη περίπτωση θα τρελαθείς στο να φτιάχνεις views και stored procedures που να εμφανίζουν μόνο τα δεδομένα του κάθε μέλους. Επίσης θα πρέπει να περιορίσεις και τα δικαιώματά τους στα tables.

Δημοσ.

Καθόλου δύσκολο. Κάθε κύρια εγγραφή θα έχει ένα πεδίο για τον loggeduser που αυτή ανήκει, και κάνεις κλήση των tables/views βάζοντας εκτός των άλλων φίλτρων στο WHERE να επιστρέφει μόνο αυτά του user.

 

Που ακριβώς συναντάς το πρόβλημα;

Επίσης μια συμβουλή, χώρισε την SQL από την ASP.NET, και bάλε την βάση στο MSSQL Express.

Με αυτό τον τρόπο αν χρειαστείς να κάνεις deploy αργότερα θα είναι πιο εύκολο να μεταφέρεις τα πάντα αυτούσια, αλλάζοντας μόνο το ConnectionString στο web.config.

Δημοσ.

Προσπάθησα να υλοποιήσω αυτά που μου είπατε αλλά δεν τα κατάφερα επειδή είμαι αρχάριος, οπότε μήπως θα μπορούσατε να γίνετε λίγο πιο σαφείς?

 

Προσπαθώ να φτιάξω μια ιστοσελίδα όπου ο κάθε χρήστης να ανακαλεί/καταχωρεί/διαγράφει τα δικά του και μόνο προσωπικά δεδομένα (π.χ. ιατρικό ιστορικό). Αυτό που έκανα ήταν να φτιάξω μια βάση δεδομένων σε sql server 2008 όπου έχω βάλει τους πίνακες και τα πεδία που με ενδιαφέρουν (π.χ. πίνακας χρήστης, πίνακας ιατρικό ιστορικό, πίνακας φαρμακευτική αγωγή κτλ.) έχοντας δημιουργήσει και τις σχετικές μεταξύ τους σχέσεις (ένα προς πολλά) και κλειδιά.

 

Από το visual studio στο toolbox στο data -> sqldatasource συνδέω τη βάση και με ένα detailsview ανακαλώ/καταχωρώ/διαγράφω τα δεδομένα. Το πρόβλημά μου είναι ότι θέλω ο κάθε χρήστης να συνδέεται ΜΟΝΟ με τα δικά του δεδομένα κι όχι με ολόκληρη τη βάση.

 

Όταν πάω στο createuserwizard μου δημιουργεί αυτόματα μια default βάση aspnetdb.mdf όπου καταχωρεί τα δεδομένα του λογαριασμού του κάθε χρήστη. Φαντάζομαι ότι ή θα πρέπει να συνδέσω τις δύο αυτές βάσεις ή θα πρέπει να βάλω τους πίνακες της πρώτης βάσης μέσα στη aspnetdb.mdf Δεν έχω ιδέα όμως πως μπορώ να το κάνω αυτό..

 

Ευχαριστώ πολύ για το χρόνο σας!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...