Create per user view or container [closed]
I would like to create a secure container for each of my authenticated users in order to enforce the security( isolation, a user can't see anything outside its container), speed ( the size of its own database is smaller ). These containers will store all the user documents, profile, themes , ....
Does anyone know how to开发者_开发百科 achieve this with asp.net mvc?
Thx
Since you are storing documents, I'm guessing your "container" is a means to securely store user-specific data permanently on disk on the server. For this task, you main choices are likely to be:
the server's file system (doesn't scale too well tho)
a relational database (such as MySQL, SQL Server or Oracle)
a non-relational database, such as RavenDB or MongoDB
You application will need to provide the means to separate user's data from other users. By using ASP.NET Forms Authentication, and HTTPS, you have a reasonably secure solution - eg. each user's data can be keyed by their username, which is as secure as any web based app with username+password authentication. I.e. to see another user's data you'd have to be able to login as that user or hijack their session, which is difficult with HTTPS.
I don't believe that separating data into silos necessarily is a good way improve performance. Do you actually have a performance problem? Premature optimization is generally a misplaced effort. Organize your data in a way that makes most sense to your application's requirements. Databases can scale up to Terabytes data, and many thousands of concurrent users. There are many techniques to improve performance for large databases, but wait until you actually have a performance problem before diving into that.
精彩评论