基于角色的页面重定向无法在OnLoggedIn' asp.net

时间:2015-11-17 05:19:04

标签: c# asp.net redirect

大家早上好!

有人可以帮助我解决我在尝试将用户(基于特定角色)重定向到另一个页面时遇到的问题,因为我浪费了一天的时间并且它仍然没有排序:(。< / p>

无论我登录的是什么角色,系统都会将我重定向到同一页面,即:&#34; TESTPAGE1.aspx&#34;,当我在“OnLoggedIn&#39;事件。但是在页面加载和#39;上工作正常。事件。我希望此操作只发生一次,即仅当用户使用用户名和密码登录时,而不是每当用户访问相关页面或刷新它时,我都不会将其放在页面加载&#39;页面加载&# 39;事件

我实际上想要实现的目标是:

  • &#39;登录页面上有两个标签&#39; 1 GT;对于客户登录和2&gt;员工登录。

  • 每当员工尝试使用“客户端”选项卡登录时:

      

    他们应该被注销并重定向到TESTPAGE1.aspx,我将在那里传达   必要的信息。

  • 每当客户端尝试使用“客户端”选项卡登录时:

      

    他们应该成功登录并重定向到TESTPAGE2.aspx,这将是
      我的主页。

&#13;
&#13;
    <asp:LoginView ID="LoginView1" runat="server" >
                        <AnonymousTemplate>
                            <asp:Login ID="Login1" runat="server"  EnableViewState="true" OnLoggedIn="Login1_LoggedIn" > 
                            </asp:Login>
                        </AnonymousTemplate>
                        <LoggedInTemplate>
                            <asp:LoginName ID="LoginName2" runat="server"  FormatString="You are already logged in as {0}" />
                        
                        </LoggedInTemplate>
                  </asp:LoginView>       
&#13;
&#13;
&#13;

 protected void Login1_LoggedIn(object sender, EventArgs e)
{


            if (!User.IsInRole("Client"))
            {
                Response.Redirect("~/FAQs.aspx");
            }
            else
            {

                Response.Redirect("~/Home.aspx");
            }




}

1 个答案:

答案 0 :(得分:0)

哟!最后,我设法使用以下代码正确使用:

   protected void Login1_LoggedIn(object sender, EventArgs e)
{


    if (Roles.IsUserInRole(Login1.UserName, "Client"))
        Response.Redirect("~/TestONE.aspx");
    else if (Roles.IsUserInRole(Login1.UserName, "Technician"))
        Response.Redirect("~/TestTWO.aspx");



}