0

私のWebアプリケーションには、2人のユーザーと2つの役割があります。役割に基づいてユーザーを別のページにリダイレクトしたいと思います。

Login_LoggedInイベントハンドラーに次のコードを使用しました。

if(Roles.IsUserInRole(Login.UserName,"Member"))
      Response.Redirect("~Protected/frmMemberHome.aspx");
else if(Roles.IsUserInRole(Login.UserName,"Admin"))
      Response.Redirect("~Admin/frmAdminPanel.aspx");

さて、これは私にはうまくいきません。イベント自体は発生しません。私の場合、ログ記録が成功すると、ログインページのみが自動的に更新され、まったく何も起こりません。

インターネット上の一部のフォーラムでは、ASP.NETのログインコントロールのDestinationPageURLプロパティを設定することを提案していますが、私の問題は、すべてのユーザーを同じURLにリダイレクトできないことです。役割に基づいて、DestinationPageURLを変更する必要があります。

これは私のUserLoginページです:

<%@ Page Title="" Language="C#" MasterPageFile="~/mainLayout.Master" AutoEventWireup="true" CodeBehind="frmUserLogin.aspx.cs" Inherits="OnlineTMS_MIST.frmUserLogin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:Login ID="Login" runat="server"
        DisplayRememberMe="False">
</asp:Login>
    </asp:Content>

どうしたらいいのかわからない。他のフォーラムが提案したものは、私が以前に試したものと同じものですが、私にはうまくいきませんでした。

4

2 に答える 2

1

あなたのログイン コントロール マークアップと私のものを比較してください。

<asp:Login ID="Login" runat="server"
        DisplayRememberMe="False">
</asp:Login>

それは私のものです:

 <asp:Login ID="Login1" runat="server" DisplayRememberMe ="true" 
            onloggedin="Login1_LoggedIn">
        </asp:Login>

イベントをイベントハンドラーにバインドしていないと思います。このセクションがonloggedin="Login1_LoggedIn"マークアップにありません。Page_Init イベントで次のように実行した場合:

 Login1.LoggedIn +=new EventHandler(Login1_LoggedIn);

これを最初に確認し、機能するかどうかを更新します..

于 2012-04-20T05:10:49.250 に答える
0

使ってみてください....

string RoleName = Roles.GetRolesForUser("username");
if(RoleName = "Member")
   Response.Redirect("~/Protected/frmMemberHome.aspx");
else if(RoleName = "Admin"))
   Response.Redirect("~/Admin/frmAdminPanel.aspx");
于 2012-04-20T04:08:18.320 に答える