这是陈述问题的奇怪方式,但这正是我想要实现的目标。
这就是我正在做的事情
连接到MySQL Db(完整)
验证(完成)
选择我在mySQL中指定的所有角色(完整)
以某种方式存储这些角色,以便我可以根据角色成员身份显示控件和链接。
我刚刚想到了解决web.config中的mySQL部分
system.web
membership defaultProvider="MySQLMembershipProvider" /
roleManager enabled="true" defaultProvider="MySQLRoleProvider" /
/system.web
我正在使用它作为代码
MySqlDataReader dr2 = cmd2.ExecuteReader();
while (dr2.Read())
{
string roleName = dr2["role"].ToString();
//error here -> Roles.AddUserToRole(userID, roleName);
}
用户''@ localhost'拒绝访问(使用密码:否)
Roles.AddUserToRole真的是我想要满足我的需求。我想我需要在sessio中存储用户角色不是吗?我
答案 0 :(得分:0)
Roles.AddUserToRole真的是我想要满足我的需求。我想我需要将用户角色存储在sessio中吗?不是吗?
NO!将用户添加到角色意味着提供者将用户链接到角色。由于您已经将用户链接起来,这是一个毫无价值的方向。
以某种方式存储这些角色,以便根据角色成员身份显示控件和链接
你为什么需要这样做?在页面级别,您可以使用trimmings设置ASP.NET安全性,以便在用户视图不正确的情况下自动从用户视图中排除页面。至于sections / controls / etc,您可以检查用户是否在角色中,然后确定是否显示它。如果使用部分,可以通过声明方式而不是以编程方式完成许多部分。
一个警告是您的会员提供商支持的。 “开箱即用”提供程序(Access和SQL Server)支持安全修整和声明性语法,用于排除页面的各个部分等。如果MySQL提供程序完全实现了所有方法,那么您应该可以正常使用它,以及。如果您创建自定义提供程序,则必须实现某些部分才能使其工作。
简短的故事是,一旦你获得了会员资格(对该人进行身份验证),您就可以访问该人是否在角色中。这是.NET中成员资格提供程序的标准实现的所有部分。只要您用于MySQL的提供程序涵盖所有相同的方法,您就可以进行快速谷歌搜索,并找到大量显示如何根据角色显示/隐藏位的网站。