[英]How to redirect the page according to user when I login in ASP.net?
我的网站中有四个不同的模块:客户,操作员,工程师和管理员。
如果当时我是客户,则单击登录按钮时,应将页面重定向到customer.aspx。
如果是工程师登录,则应将页面重定向到engineer.aspx,依此类推。
我该如何实现?
我想您正在将“普通” ASP.NET与WebForms一起使用。 在这种情况下(再次假设),您的页面上具有登录控件,如下所示:
<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");
}
您必须在表中再添加一列,用于存储用户名和密码。 在新列中,您可以保存用户角色。 当用户输入正确的用户名和密码时,您可以获取其角色并根据其角色重定向用户。
例如:
如果获取客户,则可以将用户重定向到customer.aspx
并检查其他角色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.