Hi Steven,
Due to regulations on data protection (like GDPR), our clients are changing the way they store visitor's data. This update allows our clients to choose not to collect visitor's information data in Form.
Forms collect Data Subject username (of the current authenticated website user) and browser IP address to perform some features. If the personalization policy indicates that personalization should not happen, Forms should stop collecting data.
By default, the built-in Hidden Visitor Profiling element collects much information from the Data Subject's web request.
Depending on the policy, it should stop collecting, and report null to the Forms Submission. This is applicable for Forms 4.17.0 and above.
To turn off personlization on browswer, set the flag 'Do not track' on browswer to true: https://support.google.com/chrome/answer/2790761?co=GENIE.Platform%3DDesktop&hl=en
Which form version are you using ?
Hello Quan, thanks for your reply.
We are using Forms version 4.10.0.
The issue we seem to be encountering is that the data is not being recorded when we want it to in the form submission. This means that the Geolocation or Profile options cannot currently be used on the site
Thanks
Hi Steven,
<geolocation defaultProvider="freegeo">
<providers>
<add name="maxmind" type="EPiServer.Personalization.Providers.MaxMind.GeolocationProvider, EPiServer.ApplicationModules" databaseFileName="App_Data\GeoLiteCity.dat" />
<add name="freegeo" type="EPiServer.Forms.Internal.GeoData.FreeGeolocationProvider, EPiServer.Forms" geoApiUrl="https://api.ipstack.com/json/{0}?access_key=YOUR_ACCESS_KEY" />
</providers>
</geolocation>
Hi Quan,
I have tried it while being logged in and the information is still not pulled through on submission when selecting the Profile option.
I have also used the default and created a free api key to test the freegeo api and this still doesn't seem to work either.
Thanks
Hi Steven,
I have just tested Forms version 4.10.0 with fresh AlloySite and it works well with Hidden Profile. The point here is that FirstName,LastName etc... must have value. It's empty by default when you create a new user.
Regarding FreeGeoProvider, I'm still investigating to see if the API has been changed or not
Will get back here soon :)
HI Steven,
Our team has just tested Forms 4.10.0 and it works with FreeGeoProvider.
There are two main points here:
<add name="freegeo" type="EPiServer.Forms.Internal.GeoData.FreeGeolocationProvider, EPiServer.Forms" geoApiUrl="http://api.ipstack.com/{0}?access_key=06346f9f8b4210e45964d359b306d9ac" />
Hello Quan,
Sorry for the delay in replying, I have been able to get the location to feed through now in the form that has been submitted now.
Unfortunately, I am still having an issue with the profile option. I have made a user and the name and other information has been created for the profile and is stored in the EPi_AspNetIdentityUserProvider and I can see the information in the dbo.AspNetUsers table as well in the database.
Is this the correct place to look?
Thanks
Steven
Hi Steven,
1) The user information is stored in dbo.[Profiles] table.
2) By default, when creating new AlloySite teamplate, there's configuration section in web.config for user profile's properties. I keep the default configuration like this
<profile defaultProvider="DefaultProfileProvider">
<properties>
<add name="Address" type="System.String" />
<add name="ZipCode" type="System.String" />
<add name="Locality" type="System.String" />
<add name="Email" type="System.String" />
<add name="FirstName" type="System.String" />
<add name="LastName" type="System.String" />
<add name="Language" type="System.String" />
<add name="Country" type="System.String" />
<add name="Company" type="System.String" />
<add name="Title" type="System.String" />
<add name="CustomExplorerTreePanel" type="System.String" />
<add name="FileManagerFavourites" type="System.Collections.Generic.List`1[System.String]" />
<add name="EditTreeSettings" type="EPiServer.Personalization.GuiSettings, EPiServer.Cms.AspNet" />
<add name="ClientToolsActivationKey" type="System.String" />
<add name="FrameworkName" type="System.String" />
</properties>
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="EPiServerDB" applicationName="/" />
</providers>
</profile>
3) Use can use the example code below to update user information. The new infor then is saved into dbo.[Profiles] table.
private void SaveProfile()
{
// load by username
var userProfile = EPiServerProfile.Get("admin");
// update profile
userProfile.FirstName = "David";
userProfile.LastName = "Jame";
userProfile.Email = "david@episerver.com";
userProfile.Language = "English";
userProfile.Country = "England";
userProfile.Company = "Episerver";
userProfile.Title = "Web Developer";
// save profile
userProfile.Save();
}
4) That's how I test the site. Basically, when submitting, Forms will get user information (hidden profile) via current profile:
var currentProfile = EPiServerProfile.Current;
Hope this help :)
Hello Quan sorry for the late reply. I was having a deep look into the issue on the site. It seems to be we are using a different provider as the site is also a commerce website.
I am not sure if this would cause an issue so thought I would mention it here and see if anyone would know. We have the following in out config:
<profile defaultProvider="SqlProfileProvider">
<properties>
<add name="Address" type="System.String" />
<add name="ZipCode" type="System.String" />
<add name="Locality" type="System.String" />
<add name="Email" type="System.String" />
<add name="FirstName" type="System.String" />
<add name="LastName" type="System.String" />
<add name="Language" type="System.String" />
<add name="Country" type="System.String" />
<add name="Company" type="System.String" />
<add name="Title" type="System.String" />
<add name="CustomExplorerTreePanel" type="System.String" />
<add name="FileManagerFavourites" type="System.Collections.Generic.List`1[System.String]" />
<add name="EditTreeSettings" type="EPiServer.Personalization.GuiSettings, EPiServer.Cms.AspNet" />
<add name="ClientToolsActivationKey" type="System.String" />
<add name="FrameworkName" type="System.String" />
<add name="State" type="System.Int32" allowAnonymous="false" />
<add name="FullName" type="System.String" allowAnonymous="true" />
<add name="PreferredBillingAddress" type="System.String" />
<add name="PreferredShippingAddress" type="System.String" />
<add name="LastVisited" type="System.DateTime" />
</properties>
<providers>
<clear />
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="EPiServerDB" applicationName="/" />
<add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="EcfSqlConnection" />
</providers>
Thanks
Steven
Hello Quan, Just wanted to post an update.
Thanks for your solution. I have followed what you suggested and call the episerver profiling and save the new details when the users are created or edited.
Thanks for your solution
Steven
I have encountered an issue with Episerver Forms when using the Visitor Data Hidden Element Block.
When this block is added to a for the two other options work correctly and record the data correctly. Unfortunately, when the Geo and Profile option is selected, no data seems to get recorded in the form submissions.
Has anyone else encountered this issue or know of a solution?
Thanks!