2014-10-25 3 views
1

ASP.NET 4.5 및 ASP.net Identity 2.0에서 개발 된 기존 웹 응용 프로그램이 있습니다. 그리고 나는이 같은 RouteConfig.cs에 라우터 설정 한 :Webform에서 MapPageRoute를 사용할 때 ReturnUrl이 작동하지 않습니다.

public static void RegisterRoutes(RouteCollection routes) 
{ 
    var settings = new FriendlyUrlSettings(); 
    settings.AutoRedirectMode = RedirectMode.Permanent; 
    routes.EnableFriendlyUrls(settings); 
    routes.MapPageRoute("manage-user-acc", "manage-user-acc", "~/Account/Manage.aspx", true); 
} 

manage.aspx 페이지가이보기 로그인해야합니다. returnUrl가 작동하지

http://localhost:64296/manage-user-acc 

및 오류이 요청을 처리하는 데 필요한 리소스에 액세스하는 동안 오류가 발생했습니다

입니다 : 응용 프로그램 실행, 내가 같이 주소 표시 줄에 URL을 입력합니다. 요청한 리소스를 볼 수있는 권한이 없을 수도 있습니다.

하지만 난

http://localhost:64296/Account/Manage 

returnUrl이 같은 페이지에 로그인하기 위해 노력하고 반환되는 주소 표시 줄에 다음과 같이 URL을 입력 할 때 :

http://localhost:64296/Account/Login?ReturnUrl=%2Faccount%2Fmanage 

그래서 어떤 사람은 찾을 나를 도울 수 내가 실수하고있는 곳. 또는 어떻게 모든 프로세스를 디버그 할 수 있습니까?

답변

0

이것은 버그처럼 보입니다. 물리적 페이지가 아닌 라우트를 인증함으로써 반올림 할 수 있습니다.

routes.MapPageRoute("manage-user-acc", "manage-user-acc", "~/Account/Manage.aspx"); 

을 MapPageRoute 그리고 루트의 Web.config

<location path="manage-user-acc"> 
    <system.web> 
     <authorization> 
      <deny users="?"/> 
     </authorization> 
    </system.web> 
</location> 
+0

미안 해요에서 노선 인증되지 않은 액세스를 거부하도록 통화에서 부울을 제거합니다. 나는 당신의 솔루션을 시도했지만 작동하지 않습니다. –