2012-07-02 36 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"));