2012-01-13 10 views
1

私はユーザー登録:検証済みのカスタムdnn登録フォームを使用しています。以下は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=*******

の値を取得verificationCodeがクリアテキスト形式で表示されていない理由を、ここで私を助けてください。

多くの方々、ありがとうございます。

答えて

2

AccessingUser(上記のコードを実行しているユーザー)が検証コードの表示に必要なアクセススコープレベルを満たすのに十分な権限を持っていないため、トークンがアスタリスクに置き換えられています。

UserInfoクラスのGetPropertyメソッドでは、トークンがマスクされずにレンダリングされるためには、 "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); 
+0

うーん - 私は管理者のユーザーに渡す場合でも、結果はまだ*******される - http://www.dnnsoftware.com/answers/ReplaceEnvironmentTokens-UserVerificationCodeを参照してください-73-working-in-73 – Rodney

関連する問題