0

メンバーシップを実装し、ユーザーがログインするときに次のコードを呼び出します。

 if (Membership.ValidateUser(txtUsern.Text, txtPass.Text))
    {
        string[] rol = Roles.GetRolesForUser(txtUsern.Text);

        string s = rol[0];
        DetectRoll(s);

    }

それは DetectRoll(); です。関数:

switch (s)
    {
        case "manager":
            Response.Redirect("~/Manager/Manager.aspx");
            break;
        case "operator":
            Response.Redirect("~/Operator/Operator.aspx");
            break;
        case "user":
            Response.Redirect("~/User/User.aspx");
            break;
        default:
            break;
    }

問題は、 Respons.Redirect() が私を典型的なページに移動させないことです。

マスター フォルダー内の web.config

<?xml version="1.0" encoding="utf-8"?>
 <configuration> 
  <system.web> 
    <authorization> 
     <allow roles="manager" /> 
     <deny users="*" /> 
   </authorization> 
  </system.web> 
</configuration>

助けてください、ありがとうございます.......

4

2 に答える 2

1

あなたは電話する必要があります、

System.Web.Security
   .FormsAuthentication
   .SetAuthCookie("role_Name",bool_persistentCookie)

を呼び出す前のメソッドResponse.Redirect()

編集:

web.configファイルの<deny/>エントリを変更します。

<deny users="?"/>

匿名ユーザーは疑問符(?)を使用して識別されます。アスタリスク(*)を使用して、認証されたすべてのユーザーを指定できます。

于 2012-07-02T07:34:44.907 に答える
0

やってみました;

Response.Redirect(ResolveURL("~/Manager/Manager.aspx"));
于 2012-07-02T07:58:32.690 に答える