Проблема в отправке кода подтверждения из формы регистрации в DNN - PullRequest
1 голос
/ 13 января 2012

Я использую пользовательскую форму регистрации в dnn с регистрацией пользователя: Проверено.

Ниже приведен код:

TokenReplace tr = new TokenReplace(Scope.SystemMessages, User.Profile.PreferredLocale, this.PortalSettings, this.User);
string verificationCode = tr.ReplaceEnvironmentTokens("[User:VerificationCode]");
string verificationUrl = Globals.NavigateURL(PortalSettings.LoginTabId) + "?username=" + Server.UrlEncode(User.Username) + "&verificationcode=" + Server.UrlEncode(verificationCode);

В этом коде я получаю значение verificationCode=*******

Пожалуйста, помогите мне понять, почему код проверки не отображается в текстовом формате.

Заранее большое спасибо-2.

1 Ответ

2 голосов
/ 19 января 2012

Маркер заменяется звездочками, поскольку AccessingUser (пользователь, выполняющий вышеуказанный код), не имеет достаточных разрешений для соответствия уровню области доступа, необходимому для отображения кода проверки.

В методе GetProperty класса UserInfo требуется, чтобы AccessingUser был либо администратором, либо самим пользователем, чтобы токен отображался без маскировки.Он определяет доступ к пользователю через HttpContext.Current.Items ("UserInfo"), поэтому, чтобы токен правильно отображался, вам нужно будет настроить доступ к администратору портала перед вызовом функции ReplaceEnvironmentTokens.

Пример:

TokenReplace tr = new TokenReplace(Scope.SystemMessages, User.Profile.PreferredLocale, this.PortalSettings, this.User); 

tr.AccessingUser = New UserController().GetUser(objPortal.PortalId, PortalSettings.AdministratorId)

string verificationCode = tr.ReplaceEnvironmentTokens("[User:VerificationCode]");
string verificationUrl = Globals.NavigateURL(PortalSettings.LoginTabId) + "?username=" + Server.UrlEncode(User.Username) + "&verificationcode=" + Server.UrlEncode(verificationCode);
...