Вот что я использовал раньше:
В sitecore web.config есть опция для отправки через необработанные URL. Установите это при использовании этого файла патча
<setting name="Authentication.SaveRawUrl">
<patch:attribute name="value">true</patch:attribute>
</setting>
Затем я добавил дополнительный процессор в процессор входа в систему после CleanupUserProfile, который считывает параметры строки запроса и перенаправляет на соответствующую страницу. Этот процессор вызывается каждый раз, независимо от того, вошел ли пользователь ранее или нет.
Подпись для моего пользовательского зарегистрированного процессора:
namespace [...]
{
public class LoginModeSwitcher
{
public void Process(LoggedInArgs args)
{
// your code here
}
}
}
Это конфигурация патча, которую я использовал для зарегистрированного процессора:
<processors>
<loggedin>
<processor patch:after="*[@type='Sitecore.Pipelines.LoggedIn.CleanupUserProfile, Sitecore.Kernel']" mode="on" type="[...].LoginModeSwitcher, [ASSEMBLY]" />
</loggedin>
</processors>
Ссылки в ссылке электронной почты содержат параметр строки запроса, чтобы сообщить моему коду, который мы хотим перенаправить после входа в систему, и другие параметры строки запроса, чтобы указать, куда перенаправить пользователя.