2012-05-25 3 views
3

우리는 ASP.NET MVC ajax 응용 프로그램에서 jQuery 주소 플러그인을 사용하여 깊은 연결 및 기록 보존을 처리합니다. 새 페이지를 탐색 할 때마다, 당신은 단순히 다음 전화를 걸 :jQuery 주소 기록에서 마지막 URL 제거

$.address.value([some url]) 

우리의 응용 프로그램은 우리의 사용자가 응용 프로그램에있는 기능에 액세스 할 수있는 사용자 정의 할 수 있습니다 매우 상세한 사용자 관리 시스템을 가지고 있습니다. 사용자가 해당 조치 메소드에서 제공하는 기능을 사용할 수있는 권한을 가지고 있는지 여부를 판별하는 사용자 정의 된 Authorize 속성으로 각 조치 메소드를 꾸 @니다. 권한이 크지 만 문제는 사용자가 주어진 액션 메소드를 사용할 수있는 권한이없는 경우 브라우저 URL은 클릭 한 링크의 페이지에있는 것처럼 반영됩니다. URL이/SomeController/UnpermittedAction는 사용자들이 그 방법에 대한 링크를 클릭하면 이용할 수 없어야합니다 작업 방법을 나타내는 경우 예를 들어

, 우리는 그런

$.address.value('/SomeController/UnpermittedAction') 

다음 실행 , 액션은 Unauthorized 응답을 반환하고 사용자에게 해당 기능을 사용하도록 허용되지 않았 음을 표시합니다. 그러나, 당연하게도, 사용자의 브라우저 창은 이제 보여줍니다

정말 문제가되지 않습니다 자체에 문제가 그런 다음 사용자가 다른 페이지로 이동하는 경우로 다시 브라우저 버튼을 클릭 있다는 것을
somedomain.com/#/SomeController/UnpermittedAction 

, 그들은 승인되지 않은 메시지를 다시 확인하십시오. 왜 그들이 메시지를 보는지 확신 할 수 없으므로 다소 혼란스러워 보입니다. 이상적인 경우에는 뒤로 버튼을 클릭하면 사용자가 사용 권한이 부여 된 마지막 페이지로 돌아가는 것이 좋습니다.

제 질문은 브라우저 기록 및/또는 jQuery 주소 기록에서 허용되지 않은 작업 URL을 제거 할 수있는 방법이 있습니까?

답변

0

자바 스크립트에서이 새로운 URL을 마지막 기록 항목을 대체합니다

 $.address.history(false); 
     $.address.value(newurl); 
     $.address.history(true); 

을 시도