Проблема развертывания веб-приложения asp.net - PullRequest
2 голосов
/ 24 октября 2011

У меня есть веб-приложение для корзины покупок. когда я запускаю это в моей локальной машине, которая работает нормально. Но когда я разместил свое приложение в Интернете, я столкнулся с двумя проблемами

  1. когда я вхожу в систему и через некоторое время использую свое приложение, пользователь автоматически выходит из системы и перенаправляется на страницу входа.
  2. некоторые изображения, извлеченные и показанные элементом управления списком данных, не отображаются, отображается только текст

Я использую метод FormsAuthentication.RedirectFromLoginPage (username, true) для входа в систему пользователя

мой файл web.config -

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
    <connectionStrings>
        <add name="shopingConnectionString1" connectionString="workstation id=shoppingpra.mssql.somee.com;packet size=4096;user id=pramuk98;pwd=kumarjha;data source=shoppingpra.mssql.somee.com;persist security info=False;initial catalog=shoppingpra"
            providerName="System.Data.SqlClient" />


    </connectionStrings>

    <system.web>



        <compilation debug="true" targetFramework="4.0" />
      <authentication mode="Forms">
        <forms  defaultUrl="default.aspx" loginUrl="login1.aspx" timeout="1000000"  cookieless="AutoDetect"  ></forms>
      </authentication>
      <authorization>
        <deny users="?"/>
      </authorization>

    </system.web>

</configuration>

И код страницы входа я использую

User Name<br />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ControlToValidate="TextBox1" ErrorMessage="fill usename "></asp:RequiredFieldValidator>
<br />

Password<br />
    <asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
    ControlToValidate="TextBox2" ErrorMessage="fill password"></asp:RequiredFieldValidator>
<br />


<asp:ImageButton ID="ImageButton3" runat="server" AlternateText="sign in" 
    onclick="ImageButton3_Click" ImageUrl="~/img/str/buttons/sign in.bmp" />

        protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
        {
            int flag = 0;
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["shopingConnectionString1"].ConnectionString);
            string s = "select * from login";
            SqlCommand com = new SqlCommand(s, con);
            con.Open();
            if (con.State == ConnectionState.Open)
            {
                SqlDataReader dtr;
                dtr = com.ExecuteReader();
                while (dtr.Read())
                {
                    if (dtr[0].ToString().Equals(TextBox1.Text) && dtr[1].ToString().Equals(TextBox2.Text))
                    {
                        flag = 1;

                        Response.Cookies["uname"].Value = TextBox1.Text;
                        Response.Cookies["pwd"].Value = TextBox2.Text;
                        Response.Cookies["role"].Value = dtr[2].ToString();
                        FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false);
                    }
                    else
                    {
                        Label1.Text = "your credential are incorrect";
                    }


                }

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Что касается проблемы с выходом из системы, используете ли вы сеансы для управления состоянием входа в систему?Если да, попробуйте установить время жизни сеанса на более высокое значение.

Если изображения не отображаются, это может быть проблема с путем (абсолютный путь).Щелкните правой кнопкой мыши по изображению и проверьте путь, с которого оно пытается получить изображение.Я надеюсь, что вы не сохранили фотографии в базе данных!У вас есть только ссылки на картинки.Правильно?

Вот как вы можете изменить тайм-аут аутентификации в web.config:

<system.web>
    <authentication mode="Forms">
          <forms timeout="1000000"/>
    </authentication>
</system.web>

Время указывается в миллисекундах.

0 голосов
/ 25 октября 2011

Для всех этих проблем я изменил тайм-аут много раз, а также добавил сессионный тег в web.config, так как он мне не подходит. Наконец-то я понимаю, что аутентификация не имеет ничего общего с сессией.

Вся информация аутентификации хранится в файле cookie аутентификации. Когда пользователю необходимо снова войти в систему, это означает, что срок билета аутентификации истек.

Решение очень простое, добавьте машинный ключ в ваш web.config или используйте этот онлайн-инструмент машинный ключ

...