Перевод страницы сервера Java в C # - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь запустить простой валидатор паролей.Я уже написал это в JSP, и это работает.Я новичок в C # и ASP.NET, и хочу практиковаться / учиться, написав это на C #.Как новичок, я столкнулся с некоторыми проблемами и надеялся на некоторую помощь.

То, что я изначально работал хорошо.Это обходной путь, который является плохой практикой, но хорош для изучения Java и JSP.Это просто использование POP-сервера в качестве обходного пути для аутентификации пользователя - глупо, но полезно учиться!

На данный момент у меня есть этот класс, который, как я считаю, должен работать, хранится в файле .aspx, которыймоя форма используется как «действие».

class POPServer
{
    static Boolean hasLogin(string username, string password)
    {
        const bool isValid;
        using (var client = new TcpClient("host.hosty.com", 110))
        using (var stream = client.GetStream())
        using (var reader = new StreamReader(stream))
        using (var writer = new StreamWriter(stream))
        {
            writer.WriteLine("USER " + username );
            writer.WriteLine("PASS " + password );
            const string response = reader.ReadLine();
            isValid = response[ 0 ] == '+';
            writer.WriteLine("quit\n");
        }
        return isValid;
    }
}

Поэтому я подключаюсь к хосту, хранящему имя пользователя и пароль, и проверяю по этой форме:

<form action="POPServer.aspx" method="post">
  <fieldset>
    <legend>Login Form</legend>
    <label for="teachername">Username:
      <input type="text" name="teachername" id="teachername" value="" />
    </label>
    <label for="teacherpass">Password:
      <input type="password" name="teacherpass" id="teacherpass" value="" />
    </label>
    <label for="teacherremember">
      <input class="checkbox" type="checkbox" name="teacherremember" id="teacherremember" checked="checked" />
      Remember me</label>
    <p>
      <input type="submit" name="teacherlogin" id="teacherlogin" value="Login" />
      &nbsp;
      <input type="reset" name="teacherreset" id="teacherreset" value="Reset" />
    </p>
  </fieldset>
</form>

Что мне интересно, так это:

Правильна ли «форма» моего кода - правильно ли хранить мой C # в файле ASPX и запускать его по мере необходимости, когда пользователь пытается войти в систему?Я не могу найти никакой информации об этом, и я предполагаю, что мне нужна структура, такая как JSP, где вы будете запускать:

if ( request.hasParameter( "Submit" ) )
{
    if ( POPServer.hasLogin( request.getParameter( "username" ), request.getParameter( "username" ) ) ) {
        response.location( "loginPage.aspx" );
    }
}

Как вы сохраняете данные сеанса, чтобы после аутентификации пользователя «страница входа»"отображается, и пользователь постоянно входит в систему, а не просто приводится по ссылке, а затем забывается?

1 Ответ

1 голос
/ 17 февраля 2012

Существует два разных подхода к кодированию ASP.NET: Веб-формы и MVC . С помощью ASP.NET Web Forms, который вы используете, вы можете делать код в .aspx, однако, обычно код помещается в выделенный код, названный для используемого языка, то есть .aspx.cs или .aspx. .vb.

Код программы содержит класс, связанный со страницей. Этот класс содержит события, которые соответствуют загрузке страницы, нажатию кнопок и т. Д. ASP.NET поддерживает ряд встроенных элементов управления, которые указываются с использованием префикса asp: i.e. <asp:Label runat="server" ID="MyLabel" Text="My label text"/>. На метки и другие элементы можно ссылаться по их идентификаторам в коде, т. Е. MyLabel.Text = "My different label text";.

ASP.NET поддерживает коллекцию под названием Session , в которой вы можете хранить информацию, которая сохраняется в течение сеанса пользователя.

Следует отметить, что ASP.NET имеет модель безопасности, основанную на провайдерах и элементах управления входом , которая интегрирована и обеспечивает гораздо больший контроль над поведением безопасности, чем подход, который вы используете здесь. Вы должны увидеть пошаговое руководство : создание веб-сайта ASP.NET с обычным именем пользователя в MSDN.

Я бы также настоятельно рекомендовал получить Visual Studio , если у вас его еще нет. Доступны ограниченные по времени пробные версии полной версии продукта. Существуют также бесплатные версии с меньшим набором функций, называемые Express editions.

Удачи, и я надеюсь, вам понравится это изучать.

...