Orchard 1.3.10 사이트에서 테스트중인 Orchard CMS 모듈을 구축 중입니다. 이 모듈은 내 엔티티 중 하나에 대한 상세 정보보기를 표시하고 "즐겨 찾기"버튼을 클릭하고 컨트롤러 액션에 대한 아약스 게시를 수행하여 엔티티를 데이터베이스의 즐겨 찾기로 저장합니다. 나는 다음과 같은 코드가보기에 로그인 한 Orchard CMS Ajax 위조 토큰
: 이<div style="padding: 10px;">
<span data-id="@Model.Id" id="addFavorite" style="cursor: pointer;">
[Add Favorite]
</span>
</div>
<script type="text/javascript">
$("#addFavorite").click(function() {
alert("here we go...");
$.ajax({
type: "post",
dataType: "",
url: "/orchardlocal/mymodule/stuff/AddFavorite",
data: { id: $(this).data("id") },
success: function (response) {
alert("it worked");
}
});
});
</script>
내 컨트롤러 액션이를 ...
[HttpPost]
public ActionResult AddFavorite(int id)
{
return View();
}
나는 오차드에 로그인되지 않고 사이트 운영이 코드가 다시 게시 단지 벌금. 로그인하여 즐겨 찾기 추가를 클릭하면이 예외가 발생합니다 ...
필수 위조 토큰이 제공되지 않았거나 유효하지 않습니다.
System.Web.Mvc.HttpAntiForgeryException이 사용자 코드 에 의해 처리되지 않았습니다. 메시지 = 필수 위조 토큰이 제공되지 않았거나 유효하지 않습니다. 자료 = System.Web.WebPages ErrorCode가 = -2147467259 WebEventCode = 0 스택 트레이스 : System.Web.Helpers.AntiForgeryWorker.Validate에서 (HttpContextBase 컨텍스트 문자열 염) System.Web.Helpers.AntiForgery.Validate에서 (HttpContextBase으로 HttpContext, 문자열 염) System.Web.Mvc.ValidateAntiForgeryTokenAttribute.OnAuthorization (AuthorizationContext> filterContext에서 ) Orchard.Mvc.AntiForgery.AntiForgeryAuthorizationFilter.OnAuthorization (AuthorizationContext filterContext)에서 C에서 : \ 코드 \ OrchardDev2 \ SRC \ 오차드 \ MVC \ AntiForgery \ AntiForgeryAuthorizationFilter.cs : 줄 37 at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters (ControllerContext controllerContext, IList`1 필터, ActionDescriptor a ctionDescriptor) System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext에서 , 문자열 actionName) 의 InnerException :
로그인하지 때 왜 다르게 게시물을 치료합니까?
이것을 방지하기 위해 어떻게 위조 방지 토큰을 제공 할 수 있습니까?
감사합니다, 브라이언 내가 이것을 피하기 위해 안티 위조 토큰을 제공 할 수있는 방법
Sebastien, __RequestVerificationToken이 데이터 {} 안에 있어야한다는 오타가 있습니다. 맞습니까? 또한, @ Html.AntiForgeryTokenValueOrchard()를 자바 스크립트에 추가 할 때 VS에서 "구부러진 컴파일이 해제되었습니다"라는 구불 구불 한 선이 나타납니다. 나는 이것이 Razor 버그라고 말한 다른 게시물을 읽었지만 이것을해야합니다 ... @ (Html.AntiForgeryTokenValueOrchard()). 그러나, 내가 이것을 할 때 자바 스크립트 오류 "구문 오류 4"가 나타납니다. 그 밖의 무엇을 내가 여기에서 놓칠 수 있었느냐? 고마워요, Brian –
나는 귀하의 의견을 –
Sebastien에 설명해 주시면 답변을 완료하셨습니다. 감사! –