문제

Cookieless 세션을 사용할 때 무한 로그인 루프 문제를 어떻게 해결하고 login.aspx의 이름을 httphandler로 변경할 수 없습니까?

즉, 관리자 권한이있는 사용자가 로그 아웃 버튼을 누르고 제한된 페이지로의 리턴 URL이 로그인으로 전달되면 관리 권한이없는 다른 사용자는 로그인 페이지로 다시 리디렉션됩니다.

나는 이것을 만났다 해결책 그러나 Login.aspx의 이름을 HTTP 핸들러로 변경할 수 없으며 Cookieless Auth와 함께 ASPX 페이지에서 ISPX 기능이 작동하지 않는 것 같습니다. 페이지.

편집하다:

이 응용 프로그램은 이미 제작 중이므로 로그인/로그 아웃/타임 아웃 프로세스의 페이지 흐름을 변경하거나 로그인 페이지의 이름을 바꿀 수 없습니다.

도움이 되었습니까?

해결책

Login.aspx 페이지에 로그인 한 후 ReturnUrl에서 페이지에 액세스 할 수있는 권한이 있는지 확인하십시오. 이 urlauthorizationModule 의이 방법을 사용할 수 있습니다 (또는 사용자에게 가장 적합한 경우 사용자 지정 방법) :

System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal(

     returnUrl,
     userPrincipal, 
     GET");

사용자가 승인되지 않은 경우 사용자가 액세스 할 수있는 페이지로 리디렉션하십시오.

사용자 교장을 얻으려면 :

var roles = System.Web.Security.Roles.GetRolesForUser(username);

var principal = new System.Security.Principal.GenericPrincipal(

   new System.Security.Principal.GenericIdentity(username), 

   roles

);

다른 팁

우리는 비슷한 문제가 있었고 다음을 수행했습니다.

If "LogOut".Equals(e.CommandName) Then
    FormsAuthentication.SignOut()
    Response.Redirect("~/Login.aspx")
End If

그런 다음 login.aspx에서 PostbackUrl을 login.aspx로 다시 보내는 returnUrl 매개 변수가 포함 된 경우 PostBackUrl을 로그인으로 변경합니다.

몇 가지 옵션 ...

하나는 사용자가 로그 아웃되면 로그인으로 수동으로 다시 리디렉션되므로 returnUrl이 없습니다. 사용자가 갑자기 얻을 수없는 리소스를 클릭하지 않도록 세션 타임 아웃과 일치하는 페이지에 메타 리프레 쉬가 있습니다.

둘째, 항상 로그인의 page_load에서 누군가를 로그 아웃하십시오. 이봐, 왜 안돼? 몇 가지 이유를 생각할 수 있지만 상황에 적용되지 않을 수도 있습니다.

셋째, ReturnUrl을 무시하십시오. redirectfromloginpage에 전화 할 필요가 없습니다! 로그인시 사용자를 기본 방문 페이지로 리디렉션하십시오.

페이지 흐름을 변경할 수 있습니까?

내 말은 사용자가 리소스에 액세스 할 수없는 경우 로그인으로 다시 리디렉션하여 정보 페이지로 리디렉션됩니다.

이 페이지는 리디렉션의 이유를 설명하고 다음과 같은 옵션을 제공합니다.

1. Click here to login as another user.
2. Click here to request access to the page.
3. Click here to login again, if your session has expired.

이것은 원형 기준과 문제가 제거됩니다.

request.urlreferrer가 로그인 페이지인지 확인하는 http 모듈을 추가하고 요청. url에 액세스 할 수있는 권한이 있는지 확인하고 "이 페이지를 볼 수있는 권한이없는 경우"로 리디렉션되지 않은 경우 확인하십시오. 페이지.

Login.aspx의 이름을 HTTP 핸들러로 변경할 수 없다고 말하지만 HTTP 301 리디렉션을 추가하여 로그인을 요청할 때마다 서버가 요청 될 때마다 사용자를 HTTP 처리기 eG 로그인으로 리디렉션합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top