2014-11-28 3 views
0

Я хочу, чтобы всякий раз, когда пользователь, если он не вошел в систему, и если он помещает имя страницы непосредственно в URL-адрес, он должен быть перенаправлен на страницу входа на сайт.Авторизация в файле Web.Config не работает после правильных учетных данных

Я gaved аутентификации в моем файле web.config, как показано ниже: -

<authentication mode="Forms"> 
    <forms loginUrl="~/Login.aspx" timeout="2880" defaultUrl="~/" /> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

Но до сих пор, когда я войти в систему с моими правильными учетными данными, он по-прежнему остается на странице входа.

Также см мой логин код кнопки: -

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     String LoginID = txtUsername.Text.Trim().ToLower(); 
     String LoginPassword = txtPassword.Text.Trim(); 

     SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultCSRConnection"].ConnectionString); 
     conn.Open(); 
     SqlCommand cmd = new SqlCommand("select username,password,usertype from tbl_User where username [email protected] and [email protected] and Active= 1 ", conn); 
     FormsAuthentication.SetAuthCookie("2", false); 
     cmd.Parameters.AddWithValue("@username", txtUsername.Text); 
     cmd.Parameters.AddWithValue("@password", txtPassword.Text); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     if (dt != null && dt.Rows.Count > 0) 
     { 
      if (dt.Rows[0]["usertype"].ToString() == "0") //SuperAdmin 
      { 
       Session["User"] = "0"; 
       Response.Redirect("csrpage.aspx"); 
      } 
      else if (dt.Rows[0]["usertype"].ToString() == "1") // Admin 
      { 
       Session["User"] = "1"; 
       Response.Redirect("Admin.aspx"); 
      } 
      else if (dt.Rows[0]["usertype"].ToString() == "2") // User 
      { 
       Session["User"] = "2"; 
       Response.Redirect("User.aspx"); 
      } 
     } 
     else 
     { 
      ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>"); 
     } 

    } 

Пожалуйста, помогите.

+0

где вы сообщаете IIS, что эти пользователи теперь известны и не известны? – Claies

+0

@AndrewCounts: У меня не было тебя. Что еще мне нужно сделать, чтобы IIS знали, что пользователи известны и неизвестно. – BNN

+1

. Аутентификация форм требует, чтобы вы установили файл cookie, чтобы следующий запрос был проверен против файла cookie и мог видеть, что пользователь уже ввел свою регистрационную информацию, иначе они просто возвращайтесь обратно бесконечно. – Claies

ответ

0

При подтверждении имя пользователя и пароль правильно, вам нужно позвонить FormsAuthentication.SetAuthCookie("username", false);

+0

, где позвонить этому Джеффри? это на моей странице login.aspx и в каком разделе, Page_Load или где-то еще? – BNN

+0

@NadeemKhan Вы можете добавить его в метод btnSubmit_Click и перед Response.Rediect –

+0

Что означает первый параметр 2 =? – BNN

0

Получили решение от следующей ссылке: -

Authentication issue Основная часть для меня в этом был ниже добавлен код: -

<location path="User"> 
    <system.web> 
    <authorization> 
    <deny users="?"/> 
    </authorization> 
     </system.web> 
</location> 
+0

Это сработало для меня .. – BNN

Смежные вопросы