我的网站有两种权限的角色:销售人员、经理
在主页登录后,销售人员的帐号可以做一部分查询功能,
而经理级的帐号可以管理销售人员的帐号;我全都是用的asp.net2.0的控件,LoginView,然后用网站管理功能添加的角色和帐号,没写一行代码。问题是:
我用销售人员的帐号登录后,去点击经理才能用的管理页面的连接,就会返回到登录页面,但这个时候登录页面显示的是我预置的欢迎界面(欢迎销售人员帐号),我怎么样才能在这个时候在登录页面上写上“请用经理帐号登录”之类的提示???因为loginview好像只能写两个状态,一个是登录后的,一个是登录前的小弟初学asp.net2,以前.net1也没有接触过,最好高手们可以有简单的方法,如果是代码,请写清楚该插在哪里。谢谢各位啦~~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    if(HttpContext.Current.User.Identity.IsAuthentication)
    {
        if(HttpContext.Current.User.IsInRole("销售人员"))
        {
            Response.Write("请用经理帐号登录");
        }
    }
      

  2.   

    1\当权限不够时,转到了登录页,url中包含returnurl这个字段
    你可以判断request.querystring("returnurl")是否为空字符串,如果不为空,则可以设置一个label的值为 请用经理级帐号登录系统2\loginview 可以分为未登录用户,登录用户和角色来显示我觉得比较好的办法是,在loginview中按角色来显示不同的链接.
    角色为 销售人员的 状态下 是看不到经理级角色的页面的.当然web.config中也要做相应的设置,否则就是掩耳盗铃了.
      

  3.   

    我的网站有两种权限的角色:销售人员、经理======
    1。
    这种需求,比较简单且实用的策略就是,登录框增加一个选择项(比如下来框)让用户选 销售人员 或者 经理2。
    我用销售人员的帐号登录后,去点击经理才能用的管理页面的连接,就会返回到登录页面,但这个时候登录页面显示的是我预置的欢迎界面(欢迎销售人员帐号),我怎么样才能在这个时候在登录页面上写上“请用经理帐号登录”之类的提示???====可以实现,但进行各种各样的判断,比如当前角色是哪个?点了什么连接?此连接对应的角色是什么? 因为,复杂点,可能有些连接销售人员可用,经理却不可用了,所以比较的繁琐对于“高手”来说,他们会选择 HttpModule 来处理类似的问题3。
    事实上, 不要分角色来登录,登录后获取用户的角色,那么就可以判断了,有什么权限就可以进入什么页面了
      

  4.   

    用HttpModule吧,因为对于ASP.NET 2.0内置的Membership&Roles来说,只有权限充足和权限不足两种情况,权限不足就返回login页而不会提示当前帐号没有这个权限。你用HttpModule可以适当地更正这个情况。
      

  5.   

    啊,多谢楼上两位帮忙,我学一下HttpModule
    明天来结贴,希望还有答案。
      

  6.   

    <asp:LoginView id="LoginView1" runat="server">
                        <AnonymousTemplate>
                          未登录用户显示的界面
                        </AnonymousTemplate>
                        <LoggedInTemplate>
                           登录用户的界面,显示当前登录用户的用户名
                            <asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>.
                        </LoggedInTemplate>
                        <RoleGroups>
    可以添加多个asp:rolegroup,以将不同的角色的用户可以看见的链接区分开
                            <asp:RoleGroup Roles="Admin">
                                <ContentTemplate>
                                   <a href="manageusers.aspx">管理用户</a>
                                </ContentTemplate>
                            </asp:RoleGroup> <asp:RoleGroup Roles="Users">
                                <ContentTemplate>
                                   <a href="myuserinfo.aspx">我的信息</a>
                                </ContentTemplate>
                            </asp:RoleGroup>                    </RoleGroups>
                    </asp:LoginView> 这样users角色的用户登录后,将无法看到manageusers.aspx的链接,当然,同时,你要使用2.0的网站管理员工具(或自己修改web.config)
    来配置manageusers.aspx页面或该页面所属的文件夹不能被其它角色的用户访问.
    相信,这个你可配置的。。