我正在使用 asp.net 成员资格,并且我从 loin 页面上的代码 plex 获得了一些代码,这些代码对所有角色成员都是通用的,我正在执行以下代码:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
//some code missing
below is to identify role and then redirecting to appropriate default page
else
{
// Next, determine if the user's username/password are valid
if (Membership.ValidateUser(loginUsername, loginPassword))
{
e.Authenticated = true;
string[] userRoles = Roles.GetRolesForUser(loginUsername);
switch (userRoles[0])
{
case "Administrator":
Login1.DestinationPageUrl = "~/Admin/Default.aspx";
break;
case "Member":
Login1.DestinationPageUrl = "~/Members/Default.aspx";
break;
}
}
}
但是当我注销时,它会正确注销,将我重定向到注销页面,但附加了一个返回 URL:
http://localhost:52045/NexLev/login.aspx?ReturnUrl=%2fNexLev%2fMembers%2fDefault.aspx
因此,如果成员第一次登录,则需要更正页面,然后如果它注销,则上述 url 会出现在注销页面上,但下次如果管理员登录,则需要登录到登录模板保持相同的 LoginView登录页面而不是将其带到管理员的默认页面。
有人可以建议如何克服这个问题吗?或者我应该根据用户角色应用不同的方法来重定向。