如何在ASP.NET中创建重定向到登录页

How to create re-direct to login page in ASP.NET?

本文关键字:重定向 登录 创建 ASP NET      更新时间:2023-09-26

使用ASP.NET,如果用户试图访问专为登录用户设计的页面,那么将用户重定向到我的登录页面的最佳方式是什么?

注意:不确定这是否重要,但我使用的是ASP.NET WebForms,但实际上我并没有使用任何WebForms。前端是纯jQuery/HTML/CSS,使用jQuery$.getJSON()或$.post()与后端*.ashx文件进行通信

我必须向表单的Page_Load()事件添加代码吗?或者我可以使用中央"重定向器"类型的文件吗?

谢谢!

绝对不要在Page_Load中这样做,这违反了DRY原则。您可以在web.config中使用<location>元素来要求对站点中的某些页面或目录进行授权,如下所述。

示例:

<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

您可以在global.asax中轻松实现这一点。我们在应用程序中使用它来检查用户是否登录,以及是否重定向到登录页面。全球范围内的事件。Asax都是应用程序级别的事件,所以您可以获得诸如请求开始/结束之类的东西,并且可以很容易地插入管道。

您应该在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