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 回答