2014-02-06 2 views
0

나는 asp.net에서 FriendlyUrl 개념 초보자입니다. 로그인 페이지에 ReturnUrl을 사용하고 싶습니다. http://localhost:8080/login?ReturnUrl=/page을 계속 사용할 수 있습니까?asp.net FriendlyUrls에서 ReturnUrl을 사용하는 방법?

그래서 한 번 사용자가

+0

다른 asp.net webform으로 리디렉션 하시겠습니까? –

답변

3

예이 여전히 가능하지만 난 제대로 질문을 이해한다면 아마 당신이 기대하지 어떤 returnurl로 리디렉션됩니다에서의 로그인. ReturnUrl은 Friendlyurls 플러그인이 그대로 남긴 Querystring parameter이지만 Friendlyurl은이 매개 변수를 사용하여 리디렉션을 수행하지 않습니다. 그것은 당신이해야 할 일입니다.

코드에서 수행해야하는 유일한 작업은 로그인 코드가 완료되고 사용자를 성공적으로 인증 한 후이 매개 변수를 사용하여 Response.Redirect을 수행하는 것입니다. 당신은 슬래시를 빠져 나올 수 있으므로 쉽게 얻을 수 있습니다. 그냥 뒤에 코드에서이 작업을 수행 :

VB

If Request.QueryString("ReturnUrl") <> Nothing Then 
    Response.Redirect(Request.QueryString("ReturnUrl")) 
Else 
// Do your normal redirect here 
End If 

C#

if (Request.QueryString["ReturnUrl"] != "" && 
Request.QueryString["ReturnUrl"] != null) 
{ 
    Response.Redirect(Request.QueryString["ReturnUrl"]); 
} 
else 
{ 
    // Do your normal redirect here 
} 

그렇게를 사용하는 경우 ReturnUrl 사용할 수 있고 경우 코드가 확인합니다이 방법 리디렉션하거나 사용 가능한 경우 기본 리디렉션을 사용하십시오.

물론 리디렉션 할 때 프로젝트의 폴더 구조를 생각해야합니다. 리디렉션 할 페이지가 프로젝트의 하위 폴더에있는 경우 하위 폴더를 ReturnUrl=SubfolderName/Page과 같은 리디렉션 위치에 추가해야합니다. FriendlyUrls 및 Distinct 페이지 이름을 사용하는 경우에도 항상 중요합니다.

+0

James123을 찾고 계신가요? 내가 너를 더 멀리 도울 수 있을까? – Jeroen

+0

동일한 문제가 있습니다. 코드 숨김 파일을 어디에 두어야합니까? – Cerveser

+0

@Cerveser : 성공적인 계정 로그인을 확인하고 응용 프로그램에 필요한 모든 것을 만들거나 준비한 직후에 (예 : 계정 정보 등을 포함하는 세션 변수). – Jeroen

0

FriendlyUrls가 ReturnUrl로 작동하지 않는 곳에서 동일한 문제가 발생했습니다. 사용 된 솔루션은 아래의 ReturnUrl을 재정의합니다. 추가 옵션은 Jeroens 코드에서 ReturnUrl을 사용하는 것입니다.

Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn 
    'overrides ReturnUrl page parameter 
    Response.Redirect(Login1.DestinationPageUrl) 
End Sub