2015-03-26 2 views
0

Использование ASP.NET, что является лучшим способом перенаправить пользователя на мою страницу входа в систему, если они попытаются посетить страницу, предназначенную для зарегистрированных пользователей?Как создать переадресацию на страницу входа в ASP.NET?

Примечание: Не уверен, что это имеет значение, но я использую ASP.NET WebForms, но на самом деле я не использую WebForms. Передняя часть - это чистый jQuery/HTML/CSS, который обменивается данными с помощью jQuery $ .getJSON() или $ .post() с файлами backend * .ashx

Нужно ли добавлять код к событию Page_Load() моей формы ? Или есть центральный файл «перенаправитель», который я могу использовать?

Спасибо!

+1

Определенно не делают это в 'Page_Load', что нарушает принцип [DRY] (http://en.wikipedia.org/wiki/Don't_repeat_yourself). Вы можете использовать '' элементы в вашем web.config, чтобы потребовать авторизацию определенных страниц или каталогов на вашем сайте, как описано [здесь] (http://weblogs.asp.net/gurusarkar/setting-authorization-rules-for- а-особенно-страницы или папка-в-веб-конфигурации). – mason

+0

Ищет аутентификацию форм и настраивает авторизацию в файле web.config. –

+0

Цифровой фронт справа. Я бы начал здесь: https://msdn.microsoft.com/en-us/library/xdt4thhy(v=vs.140).aspx – Biscuits

ответ

1

Определенно не сделать это в Page_Load, что нарушает DRY principle. Вы можете использовать <location> элементы в вашем web.config, чтобы потребовать авторизацию определенных страниц или каталогов на вашем сайте, как описано here.

Пример:

<location path="admin"> 
    <system.web> 
    <authorization> 
     <allow users="John"/> // allow John ..note: you can have multiple users seperated by comma e.g. John,Mary,etc or you can allow roles 
     <deny users="*"/> // deny others 
    </authorization> 
    </system.web> 
</location 
0

Вы можете легко реализовать это в global.asax. Мы используем его в нашем приложении, чтобы проверить, зарегистрирован ли пользователь и если не перенаправлен на страницу входа. События в мире. Asax - это все события уровня приложения, поэтому вы получаете такие вещи, как начало/конец запроса и можете легко подключиться к конвейеру.

+0

И как вы проверяете, чтобы страница, которую они запрашивали, была необходима для входа? – mason

0

Вы должны справиться с этим в global.asax (HttpApplication файл класса) - в частности, например, так:

C#

void Application_OnAuthenticateRequest(Object Source, EventArgs Details) { 
     // Authentication code goes here. 
     //if fail, Response.Redirect('NotAuthenticated.htm'); 
     //or like so. 
} 

VB

Sub Application_OnAuthenticateRequest(Source As Object, Details as EventArgs) 
     'Authentication code goes here. 
    End Sub 
+0

И как вы проверяете, чтобы страница, которую они запрашивали, была необходима для входа? – mason

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