2012-07-02 40 views
0

我实现了会员,而且当用户登录电子,我把这个代码:我该如何解决会员和respons.redirect()

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> 

请帮忙,谢谢.........

+0

那么它移动到哪个页面? – leppie

+0

非页面。它留在login.aspx – hhjj

回答

1

你需要调用,您之前

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

方法致电Response.Redirect()

编辑:

修改web.config文件的<deny/>条目。

<deny users="?"/>

匿名用户使用一个问号(?)标识。您可以使用星号(*)指定所有经过身份验证的用户。

+0

我写了你的代码,但它不能解决我的问题,你有想法吗? – hhjj

+0

请发布位于Manager,Operator和User文件夹(任何一个)下的'web.config'代码。 – adatapost

+0

“<?XML版本= “1.0” 编码= “UTF-8”?> <结构> <授权> <允许角色= “经理”/> <拒绝用户= “*”/> ' – hhjj

0

你有没有试过;

Response.Redirect(ResolveURL("~/Manager/Manager.aspx"));