2013-12-11 3 views
0

У меня есть скомпилированное веб-приложение .NET с Login.aspx, которое устанавливает значения имени пользователя/пароля в классе codebehind, а затем запускает событие OnClick Page для выполнения проверки подлинности. Теперь мне нужно добавить дополнительный уровень аутентификации, поэтому мне нужно перехватить этот вызов, передать учетные данные моему классу в моей сборке, а затем условно передать их существующему классу/сборке.Как лучше всего перехватить вызов ASPX в класс codebehind?

Как лучше всего это сделать? Обратите внимание: класс codebehind скомпилирован, поэтому у меня нет кода, который мог бы его изменить, но у меня есть Login.aspx.

Я являюсь noob для веб-приложений .NET, поэтому я не уверен, с чего начать. Я ожидаю, что придется переписать Login.aspx или заменить его на MVC, использовать jQuery, чтобы условно установить код или что-то ... не уверен. Пожалуйста, порекомендуйте.

ответ

1

Предполагая, что ваш «событие OnClick Page» представляет собой кнопку обработчик щелчка, вот что вы можете сделать:

Создайте новый класс, который наследует от класса отделенного кода, что у вас есть:

public class MyAuthForm : WebForm1 
{ 
} 

(где WebForm1 это имя скомпилированного класса - вероятно, «Логин» или что-то подобное в вашем случае)

Затем добавьте перезапись замкового события в этом классе:

.
public class MyAuthForm : WebForm1 
{ 
    protected new void Button1_Click(object sender, EventArgs e) 
    { 
     // do your stuff 

     base.Button1_Click(sender, e);  
    } 
} 

Изменить код в Login.aspx использовать новый класс, который вы только что создали:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyAuthForm.cs" Inherits="WebApplication1.MyAuthForm" %> 

Это должно перехватить событие щелчка кнопки и даст вам возможность справиться с этим, прежде чем передать его к оригиналу щелкните событие в вашем скомпилированном классе codebehind.

+0

Отлично, спасибо. Я должен был подумать об этом. * Facepalm * – SPB

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