Я работаю над частью веб-приложения в ASP.Net MVC, где пользователь регистрируется для членства, используя поставщика членства sql. Когда они регистрируются, они помещаются в систему, но не утверждаются. Затем код отправляет пользователю электронное письмо с подтверждением с указанным адресом электронной почты.
BfEncrypt refid = new BfEncrypt();
refid.Encrypt(user.ReferenceID);
string code = HttpContext.Current.Server.UrlEncode(refid.CipherText);
...
Body += "<a href=\"http://localhost:1091/approve/" + code + "\">Approval Link</a>\n\r\n\r";
Но когда пользователь нажимает на ссылку, он получает следующую ошибку:
Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей)
могло быть удалено, изменилось его имя или временно недоступно.
Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.
Запрошенный URL: / Approve / k / 9IHrY43os =
Вопрос заключается в том, что если я кодирую ссылку перед тем, как отправить ее, почему она декодируется перед попыткой вызвать действие? URL в моем браузере на самом деле 'http://localhost:1091/Approve/k%2f9IHrY43os%3d', когда я получаю сообщение об ошибке. Моя маршрутизация настроена правильно, но она не учитывает лишние '/' в зашифрованной строке в URL (так как в любом случае ее там быть не должно).