我是一个asp.net mvc新手自从经典的asp之后我什么都没做过。我想根据用户角色显示Mysql数据库中的文件列表。到目前为止,我已经创建了两个表,一些文件可以由多个角色查看。我也在使用MySql成员资格提供程序
表文件
FileID, FileName, FilePath
表文件角色
FileID, RoleID
我想我可以在files表中添加一个文件,然后对于每个有权访问该文件的角色,我需要将fileID添加到files role表中,还需要从
RoleID
表中获取my_aspnet_roles
并将其添加到。然后当有人查看文件时,它会获取他们所处的每个角色的ID,然后从数据库中获取文件列表
我不知道从哪里开始,所以任何帮助都会非常感谢。
最佳答案
让我让你跟上速度:
一。创建用户并将其添加到角色
Webdeveloper Express和Visual Studio为您的网站提供了一个Web管理工具:
要访问网站管理工具,请在“网站”菜单上单击“ASP.Net配置”。
参考:http://msdn.microsoft.com/en-us/library/yy40ytx0.aspx
您可以添加用户和角色,并从中向角色添加用户。
2。创建数据库记录(假设您有某种类型的mysql管理面板)
现在在数据库中创建一些文件记录,并在文件和角色之间创建一些关联记录。我将使用RoleName
而不是RoleID
,因为默认的RoleProvider接口使用string
名称。
三。了解如何从ASP.NET查询mysql数据库
请阅读以下示例:http://support.discountasp.net/KB/a358/how-to-query-a-mysql-database-in-aspnet.aspx
四。基于用户角色创建正确的查询
string[] userRoles = Roles.GetRolesForUser(HttpContext.Current.User.Identity.Name);
// creates "'role1','role2' from array.
string userRolesForSqlQuery = userRoles.Select(x => "'" + x + "'").Aggregate((a,b) => a + "," + b);
//Psuedo code for querying the database...
var fileForUserQuery = String.Format("SELECT FileID, FileName, FilePath FROM Files
INNER JOIN FilesRole ON Files.FileID = FilesRole.FileID
WHERE FilesRole.RoleName IN ({0});", userRolesForSqlQuery);
希望这能帮你。。。
关于asp.net - 如何在mysql数据库中存储文件列表并根据用户角色显示它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10132302/