친애하는 StackOverflow의 커뮤니티,페이지 리디렉션 너무 많이 ASP.NET
내가 ASP.NET 및 재생 장난 한 여전히 새로운 오전과 내가 오류를 보여줍니다 어디에 내 로그인을 인증하는 데 오류가 발생했습니다 "페이지가 너무 많이 리디렉션 된 것"과 같은 일이 반복적으로 발생하고 2 일 후에는 파악할 수 없습니다.
모든 페이지에 대한 전역 인증이 될 수 있도록 header.acsx를 사용하여 로그인을 구현했습니다.
If String.IsNullOrEmpty(Session(GetSessionKey("UserName"))) Then
Dim userName As String = HttpContext.Current.User.Identity.Name.Split("\")(1)
SessionInitialiser(userName)
End If
Response.Redirect("~/EventRegistration.aspx")
를 Page_Load 기능 :
Dim adserv As New ActiveDirectory()
Dim userDetails As WebServiceUserPrincipal = adserv.Getuser(userName)
Dim userGroups As String() = adserv.GetUserGroups(userName)
Dim _dt As New DataTable
_dt.Columns.Add("Group")
For Each item As String In userGroups
Dim _row As DataRow = _dt.NewRow()
_row("Group") = item
_dt.Rows.Add(_row)
Next
Session(GetSessionKey("FullName")) = userDetails.DisplayName
Session(GetSessionKey("Groups")) = _dt
Session(GetSessionKey("UserName")) = userName
Session(GetSessionKey("Switch")) = "OK"
Dim filter_auditGroup As String = ConfigurationSettings.AppSettings("FILTER_GROUP")
Dim _adt As New DataTable
_adt.Columns.Add("Group")
For Each item As String In userGroups
If (item = filter_auditGroup) Then
Dim _row As DataRow = _adt.NewRow()
_row("Group") = item
_adt.Rows.Add(_row)
End If
Next
'If _adt.Rows.Count > 0 Then
' Session(GetSessionKey("AuditGroups")) = _adt
'End If
End Sub
확인 액세스 기능
If Not IsPostBack Then
Dim arr As Array = Request.Url.AbsolutePath.Split("/")
Dim page As String = arr(arr.Length - 1).ToString().Split(".")(0) '-- Ballot.aspx, remove .aspx and get Ballot only
Dim signOut As New List(Of String)
signOut.Add("SwitchUser")
signOut.Add("SignOut")
If (Not signOut.Contains(page, StringComparer.OrdinalIgnoreCase)) Then
If (String.IsNullOrEmpty(Session(GetSessionKey("UserName")))) Then
Response.Redirect("~/Default.aspx")
Else
Dim group As DataTable = Session(GetSessionKey("Groups"))
'Dim auditGroup As DataTable = Session(GetSessionKey("AuditGroups"))
Dim adminPage As New List(Of String)
adminPage.Add("BallotProcess")
adminPage.Add("CodeTablePage")
adminPage.Add("MaintainBallotItem")
adminPage.Add("MaintainCodeItem")
adminPage.Add("MaintainItemDetail")
If (adminPage.Contains(page, StringComparer.OrdinalIgnoreCase) And Not CheckAdmin(group)) Then
Response.Redirect("~/EventRegistration.aspx")
End If
'If (page.Equals("AuditPage", StringComparison.OrdinalIgnoreCase) And Not CheckAudit(group)) Then
' Response.Redirect("~/default.aspx")
'End If
End If
End If
End If
확인 관리 기능
Private Function CheckAdmin(ByVal group As DataTable) As Boolean
Dim i As Integer
If Not IsNothing(group) Then
For i = 0 To group.Rows.Count - 1
If group.Rows(i)(0) = ConfigurationSettings.AppSettings("FILTER_GROUP") Then
CheckAdmin = True
Session(GetSessionKey("EventAdmin")) = 1
Exit Function
End If
Next
End If
End Function
다음
는 head.vb의 코드