私はasp.netメンバーシップを使用しており、次のコードを実行しているすべてのロールメンバーに共通のロースページのコードプレックスからいくつかのコードを取得しました:
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 に移動します。管理者のデフォルトのページに移動する代わりに、ページにログインします。
誰かがこの問題を克服する方法を提案できますか? または、ユーザーの役割に応じてリダイレクトする別のアプローチを適用する必要があります。