How can I set Person.Password attribute manually which is related Password Reset Web?

I tried to set a cleartext password for Person.Password attribute (exp:Passw0rd1.) But when I tried "I have a passcode" function on Password Reset Web page, I faced an error "Failed to authenticate user: Not yet implemented -> [Hash function for key Passw0rd1.]". I think there should be a way to set Person.Password value manually  and maybe there is a script for generate specific password for this attribute...

Parents Reply Children
  • Sorry for my typo.  I have created a process and script and now I can generate a passcode for a person and I can use it on Password Web Side (I have a passcode).

    Now I should trigger my process when user chooses authentication method  (I have a passcode ) on the PRW site. I think I can handle it via web designer. Can I call the same method (createPassword) via Web Designer?  Or what is the best way you can suggest?

    Here is my code sample: 

    Dim Pers As ISingleDbObject = Connection.CreateSingle(New DBObjectKey("<Key><T>Person</T><P>989160c4-7de1-471c-89bd-9ed55e7db15f</P></Key>"))

    'MsgBox(Pers.GetValue("PersonnelNumber").ToString)

    Dim hoursValid As Long = CInt(Connection.GetConfigParm("QER\Attestation\NewExternalUserTimeoutInHours"))

    Dim passCode As String = Pers.Custom.CallMethod("CreatePassCode", hoursValid).ToString

    Pers.Save()

    VID_write2Log("C:\Users\administrator.ISBANK\Desktop\Test.txt",passCode)


    Dim passCodeEncoded As String = System.Net.WebUtility.UrlEncode(passCode)
    VID_write2Log("C:\Users\administrator.ISBANK\Desktop\Test.txt",passCodeEncoded)

    Dim verificationLink As String = _
    String.Format("{0}/page.axd?ContextID=QER_PasswordWeb_Session&aeweb_UID_AttestationCase={1}&aeweb_PassCode={2}", _
    QER_GetWebPasswordResetURL(), _
    $UID_AttestationCase$, _
    passCodeEncoded)

    VID_write2Log("C:\Users\administrator.ISBANK\Desktop\Test.txt",verificationLink)

    Thank you,

  • Technically, you should be able to call the method, but I would trigger a process (Event) to avoid potential permission issues as you are not fully authenticated at this point in time at the Password Reset Web.

  • We can not update or insert any default table (exp: Person) or cstom table via using Password Reset Web.. We can not load any tablo also.. Because we are not login at that time.. How can we figure out that issue? I need to do a least one of them from PRW site : callmehod / trigger event / update Person attribute . It doesn't allow nothing...

  • You said that "I would trigger a process from Password Reset Web".. Is that possible and how? 

  • Hi Markuss,

    Yes we can technically call the method but we are not authenticated at that time so we get error about that. How can we figure out that authenticate part? I am sure there should be a trick for bypass the authenticate step.. Maybe we can authenticate with a specific user for every time for skipping the permission and auth. issues to OneIM database. Is that possible and How can we manuellay authenticate with an user in Password reset Portal ?

  • Sorry, but I am unable to give you any advice about the password reset portal's inner workings. Maybe another member here is able to help you out.

  • Thank you Markuss, no problem.

    We  successfully called appserver api via powershell or using api server in OneIM appserver api page. I just used viadmin for authentication. So that means I can call api server  everywhere. Now I need to find a way for calling appserver api from Password Reset Web Portal. If it is not possible , I can try to call a powershell file from Password Reset Portal. Both ways are ok for me.. I just need to know how can I execute something in Password Reset Portal..?

  • Hi,
    To authenticate to the application (or the App Server in particular), you can set a fixed connection string in the web.config (don't forget to encrypt).

    Then use something like the following code:

                VI.DB.IConnection newConnection;
                using (newConnection)
                {
                    var connectionString =
                        System.Configuration.ConfigurationManager.ConnectionStrings["name-of-the-connection-string"].ConnectionString;
                    newConnection.Authenticate(connectionString);

                    // ... do what you need to do inside the connection
                }
  • PS: Instead of calling the AppServer API on a network level, it may be easier to call a script

  • I understood that web.config side but where should I use that code (newConnection.Authenticate(connectionString))? Should I use it in Web Designer? If I should, is there any example ? Because I have never used this type of codes in Web Designer.. Where is the correct place to use it in Web Designer? (module, component etc..)