나는 아이디 부분에 대한 지금잘못된 요청 - 잘못된 URL HTTP 오류 400 요청 URL은
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
이하, I에 의해 구분 된 데이터의 많은 세트를 결합하고있어 따라 라우팅이 유효하지 않습니다 "-" AES (RijndaelManaged) 암호화로 암호화합니다. 그리고 나는 아래 주소로 UrlEncode를 작성하여 다른 사람에게 이메일을 보냅니다 ...
http://localhost:7777/Product/Invite/%e3%b7%92%e4%97%ad%eb%b6%b3%e3%b7%90%eb%b2%8c%e2%aa%ad%e7%86%87%e9%b6%9e%ec%ae%aa%ec%a7%a2%ec%9a%a0%ec%ba%be%e2%89%bc%e5%ba%aa%ee%be%a8%ee%9f%a8%ea%aa%b6%e3%87%83%e3%8c%b4%eb%99%89%e8%8f%bb%e4%b0%ab%ef%bf%bd%e7%a0%99
하지만 클릭하면 오류가 발생합니다. 다음은
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.
는
string data1 = email.EmailID + " - /" + events.EventID + "-" + DateTime.Now.ToString("yyyyMMddhhmm") + "-" + events.MemberID;
var encoding = new UTF8Encoding(false, true);
byte[] cypherBytes = advEncryProvider.Encrypt(encoding.GetBytes(data1));
string dataEncodedString = HttpUtility.UrlEncode(GetString(cypherBytes));
이 How do I enable special characters in MVC routing?
으로 Web.config의 편집을 시도 암호화 및 인코딩 과정하지만 여전히 행운입니다
<system.web>
<httpRuntime targetFramework="4.5" requestPathInvalidCharacters="" requestValidationMode="2.0"/>
<compilation targetFramework="4.5" debug="true"/>
<pages validateRequest="false">
<namespaces>
<add namespace="System.Web.Helpers"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.WebPages"/>
</namespaces>
</pages>
** 업데이트 **
Callem Pittard에 의해 제안나는 base64 인코딩을 수행하여이 문제를 해결하기 위해 관리 ... :)
An efficient way to Base64 encode a byte array?
왜 당신이 URL 대신 몸을 사용하지 않는 데이터를 전송하기 위해? – NMK
당신은 base64encode 할 수 있습니다/디코딩 당신에게 안전한 문자를 줄 것입니다 ... –
Callem Pittard, 나는 당신의 제안을 시도하고 그것은 효과가! 감사! – user3663854