2013-08-29 2 views
1

여러 클래스가있는 태그를 만들기 위해 TagBuilder를 사용하려고하지만 태그가 잘못되었습니다. 우리는 AntiXssEncoder를 사용합니다. TagBuilder에 여러 클래스를 추가하면 어떤 시점에서 인코딩이 호출됩니다.TagBuilder 및 AntiXss 라이브러리

기본 환경에서는 작동 할 수 있지만 엔코더가 더 엄격한 것으로 바뀌면 내 "클래스"속성의 ​​공백과 같은 것들이 인코딩되어 모든 종류의 것들이 손상됩니다.

주어진 TagBuilder 인스턴스에 대한 속성 인코딩을 해제 할 수있는 방법이 있습니까?

답변

0

.NET 4.0에서는 문제가있는 것처럼 보입니다. TagBuilder를 사용하고 문자열을 연결하는 것이 아니라면 (기본 기능을 원하지 않는다면 더 좋은 아이디어 일 수 있습니다.).

그러나이 질문에서 설명하는 것처럼 문자열을 이스케이프하지 않는 HttpEncoder의 고유 한 재정의를 만들 수 있습니다. Stop the tag builder escaping single quotes ASP.NET MVC 2

+1

나는 그것을 보았다

이 SO 질문 자세한 내용은 허용 대답을 참조하십시오. 그것은 예외적 인 대답이 아닙니다 ... 누군가를 위해, 그래서 나는 아무도 거기에 아무 것도 말하지 않았다는 것을 믿을 수 없습니다. 기본적으로 TagBuilder뿐 아니라 모든 것을위한 출력 인코딩이 해제됩니다. 그것은 "이 자물쇠는 귀찮아서 문을 떠났다"고 말하는 것과 같습니다. 난 그냥 HtmlUnencoding builder.ToString()에 의해 임시로 그것을 해결하기 전에 지금은 HtmlString에 전달하기 전에 일했습니다. –

+0

하하. 당신의 유비를 사랑하십시오 :) 그리고, 당신은 요점이 있습니다. 물론, 사용자 정의 TagBuilder에이 특정 인스턴스를 인코딩하지 말라고 말하는 속성을 추가 할 수도 있습니다. 그러나 지금은 세부 사항을 생각할 수 없습니다. –

관련 문제