问题描述
1,就是当我的网站里面有好几个角色的时候,比如。老师和学生;那么老师的属性肯定和学生的属性不一样,那么这个时候我再添加信息的时候如何来区分不同的用户添加不同的profile呢?然后同样的是读取,修改信息的问题!2,就是我用Membership控制权限的时候,如果我现在有一个功能目录的xml文件,这个功能目录自然是对应的我项目里面的文件夹目录,那么我如何通过Membership来控制这个功能目录的xml文件,当我哪种角色的用户进来的时候,就显示该角色所有用的功能目录。3,就是Membership能否做到,我控制某个具体的功能,比如,我添加,删除这两个功能分别赋予两种不同的角色!这该如何去做?我的qq:411545730
解决方案
解决方案二:
不是很明白帮顶
解决方案三:
Memberrole组件
解决方案四:
该回复于2007-12-04 11:18:58被版主删除
解决方案五:
我们一般是这样做的,角色,权限,用户用户有一个角色,角色有权限然后判断每个操作的权限
解决方案六:
如果用自带成员角色管理要用Vs自动生成的数据库。感觉不方便,所以也没用。就用了Form验证。权限管理这块我还是用Session控制的。
解决方案七:
if(User.IsInRole("Administrators"))Administrators是一个角色,是在成员资格中定义的角色,也可以是if(User.IsInRole("Teachers"))或if(User.IsInRole("Students"))privatevoidBindData(){DataTabledataTable=newDataTable();dataTable.Columns.Add("UserName",typeof(System.String));dataTable.Columns.Add("City",typeof(System.String));dataTable.Columns.Add("Sex",typeof(System.String));dataTable.Columns.Add("BirthDay",typeof(System.DateTime));dataTable.Columns.Add("MSN",typeof(System.String));dataTable.Columns.Add("Address",typeof(System.String));dataTable.Columns.Add("Mobile",typeof(System.String));dataTable.Columns.Add("Phone",typeof(System.String));ProfileCommonprofile=null;DataRowdataRow=null;//遍历当前所有用户foreach(MembershipUseruserinMembership.GetAllUsers()){dataRow=dataTable.NewRow();dataRow["UserName"]=user.UserName;//获取指定用户Profileprofile=Profile.GetProfile(user.UserName);dataRow["City"]=profile.City;dataRow["Sex"]=profile.Sex;dataRow["BirthDay"]=profile.BirthDay;dataRow["MSN"]=profile.MSN;dataRow["Address"]=profile.Address;dataRow["Mobile"]=profile.Communication.Mobile;dataRow["Phone"]=profile.Communication.Phone;dataTable.Rows.Add(dataRow);}GridView1.DataSource=dataTable;GridView1.DataBind();}
解决方案八:
那里有Membership下
解决方案九:
以下是我的新书开发大全中的章节,正好与楼主第3条有关Personalize个性化事件在ASP.NET获取与当前请求关联(如会话状态)时发生,在应用程序的Globa.asax文件中的Profile_Personalize全局事件中,可以使用ProfileModule类的Personalize事件。Personalize事件用于指定自定义用户配置文件。假设一个系统中定义了Administrators、Users和Guests这三个角色,每个角色拥有的权限大小不一样,Administrators>Users>Guests,系统可能有成千上万个用户,不可能为每个用户都定义权限,给用户定义角色是最方便的选择。每个角色的权限存储在一个用户的Profile配置文件中,例如Administrators角色的权限存储在Administrator用户的Profile配置中。在Profile_Personalize全局事件中,根据角色将指定的用户(例如Adminstrator用户)Profile配置取出,赋予当前用户,具体的步骤如下:1.添加角色和用户可以使用网站管理工具添加Administrators、Uses、和Guests这三个角色,在网站管理工具中选择“安全→创建或管理角色”进行角色添加,如图21.10所示。图20.10为系统添加角色选择“安全→创建用户”,创建Administrator、User和Guest这三个角色,如图20.11所示。图20.11为系统创建用户2.为Profile添加字段在web.config中的<properties>节点中添加两个字段,一个是权限名称,一个是权限级别,如下:<properties><addname="PowerName"type="System.String"/><addname="PowerLevel"type="System.String"/></properties>3.为新增的用户设置权限在应用程序中添加一个页面,为页面添加三个DropDownList,分别是用户名称、角色名称和权限级别,分别为administrator、User、Guest添加角色名称和权限级别,如图20.12所示。图20.12设置用户的角色和权限级别4.定义Profile_Personalize事件在Global.asax文件中添加Profile_Personalize事件如下:publicvoidProfile_Personalize(objectsender,ProfileEventArgsargs){ProfileCommonuserProfile;if(User==null){return;}userProfile=(ProfileCommon)ProfileBase.Create(User.Identity.Name);if(User.IsInRole("Administrators"))userProfile=userProfile.GetProfile("Administrator");elseif(User.IsInRole("Users"))userProfile=userProfile.GetProfile("User");elseuserProfile=userProfile.GetProfile("Guest");if(userProfile!=null)args.Profile=userProfile;}在页面的Page_Load事件中的代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(!Page.IsPostBack){Response.Write(string.Format("欢迎您:{0}<br/>您的角色是:{1}<br/>您的权限是:{2}<br/>",User.Identity.Name,Profile.PowerName,Profile.PowerLevel));}}下面可以测试一下效果,例如为名为jack的用户分配Administrators角色,然后使用jack用户名登录系统,输出结果如图20.13所示。图20.13jack登录系统
解决方案十:
楼主应该好好看看MSDN的文章了~~{从开头开,你就会对BS有更多的了解}