0

我的网站中有四个不同的模块:客户、操作员、工程师和管理员。

当我当时单击登录按钮时,如果那是客户,则该页面应重定向到 customer.aspx。

ff工程师登录然后页面应该重定向到engineer.aspx等等..

我怎样才能做到这一点?

4

3 回答 3

1

我想您正在使用带有 WebForms 的“普通”ASP.NET。在这种情况下(我再次假设),您的页面上有登录控件,如下所示:

<asp:login id="ctrlLogin" runat="server"></asp:login>

该控件公开了一些您可以使用的事件,其中一个在身份验证后被触发。像这样设置您的登录控件:

<asp:login id="ctrlLogin" runat="server" onloggedin="OnLoggedIn">
</asp:login>

现在您的 C# 代码添加方法OnLoggedIn

protected void OnLoggedIn(object sender, EventArgs e)
{
}

在那里,您可以使用简单的调用重定向到正确的页面Response.Redirect()。最后一个问题是如何获得用户的“工作”,如果您使用带有角色的 ASP.NET 身份验证,您可以将您的用户设置为属于该角色(客户、操作员、工程师、管理员)。实际上一个用户可以有多个角色,所以你可能需要搜索你感兴趣的角色。一个快速而肮脏的解决方案是拥有这样的功能:

private void RedirectToProperPage(params string[] roles)
{
    foreach (string role in roles)
    {
        if (Roles.IsUserInRole(role))
            Response.Redirect(String.Format("~/{0}.aspx", role));
    }
}

在你的OnLoggedInMethod你可以简单地这样做:

protected void OnLoggedIn(object sender, EventArgs e)
{
    RedirectToProperPage("Admin", "Operator", "Engineer", "Customer");
}
于 2013-02-22T14:05:56.077 回答
0

如果您正在使用该Login控件,那么它有一个LoggedIn事件,您可以在用户登录后使用该事件来执行自定义逻辑。

于 2013-02-22T13:53:56.267 回答
-1

您必须在表中再添加一列,其中存储了用户的用户名和密码。在新列中,您可以保存用户的角色。当用户输入正确的用户名和密码时,您可以获取他的角色并根据他的角色重定向用户。

例如:

如果您获取客户,那么您可以将用户重定向到 customer.aspx

并对其他角色进行同样的检查。

于 2013-02-22T13:57:13.353 回答