Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
niceqlik
Partner - Contributor III
Partner - Contributor III

Ticket Authentication in a .NET web application

Hi guys,

We are working on Workbench for a couple of days. So far, we have achieved several steps to understand the principles on how Qlikview Server handles authentication in .NET or ASP web applications.

We understand that by default a .NET WB webpage relies on SSO and passes the current windows account to the QVS to generate the QV objects.

In our example, there is a Datasource object and a chart object in a page (default.aspx). The datasource objects is set to a qvw document found in "localhost" qv server.

Runnning the project, it simply shows the chart object successfully and reviewing the QVS Statistics under QEMC, we see that current windows user is being used while the application is running.

So far so good and simple.

But,

What if we want to authenticate a spesific user which we will decide rather than the current windows user ?

In a pure ZFC-enabled web page, we use generating ticket for that specific user through QVSRemote.Client object in ASP.

Using this ticket in the querystring of the page having qv objects, it simply fetches this ticket and does the authentication for that user bypassing the current windows user. (like show.asp?ticket=xxxxxxx)

But, how can we achieve the same in .NET environment.? If I need to generate a ticket as well, where do i need to do this?

I can give further details to be more clear.

Thanks in advance.

1 Solution

Accepted Solutions
Not applicable

Hello Ismail,

Authentication with ticketing is very similar in Workbench as the way you used to do it before.

In your .NET project you could reference QvsNetRemote.dll or use qvsviewclient.asp to request a ticket from QVS.

You can then pass this ticket into the URL of the Workbench .aspx page.

I've posted code samples for requesting a ticket using QvsNetRemote and QvsViewClient elsewhere on these forums.

Best regards,

Erik Kramer

View solution in original post

5 Replies
Not applicable

Hello Ismail,

Authentication with ticketing is very similar in Workbench as the way you used to do it before.

In your .NET project you could reference QvsNetRemote.dll or use qvsviewclient.asp to request a ticket from QVS.

You can then pass this ticket into the URL of the Workbench .aspx page.

I've posted code samples for requesting a ticket using QvsNetRemote and QvsViewClient elsewhere on these forums.

Best regards,

Erik Kramer

niceqlik
Partner - Contributor III
Partner - Contributor III
Author

Hi Erik,

Yes, I see it.

Yesterday, I have tested passing ticket info in querystring like ?ticket=xxxxx , the application understood that and viewed the page for that specific user that the generated ticket belongs. It was very simple.

Many thanks.

niceqlik
Partner - Contributor III
Partner - Contributor III
Author

Hi Erik,

I need a little answer about ticket authentication that you must most probably know well.

I am extending my web application by seperating web server and qv server. Ticket Authentication runs perfect if both servers are on the same server machines. But so far, I could not pass ticket info to a remote qvs machine.

What I want to achieve is displaying qv ZFC objects from a remote qv server in a remote webpage.

My sample is an ASP-based page. not .NET. so i am utilizing

set ntsecurity = Server.CreateObject ("QVSRemote.Client")

ntsecurity.AdminConnect "sigma"

tktResponse = ntsecurity.Execute(vCom)

This gives a ticket successfully.

As you can see "sigma" is the name of my remote qlikview server.

Secondly i have a ZFC-enabled webpage : show.asp

This is generated by Object Client Page Generator for ZFC.

On Sigma, I can use the ticket info in a URL like:

http://sigma/qvapp/show.asp?ticket=xxxxxxx

This works perfect.

But, on another web server I can't.

The name of my original web server is "Qvweb"

By trying:

http://qvveb/qvapp/show.asp?ticket=xxxxxx

it gives me the error "No Connection"

I think I must also be supposed to pass a remote qv server name in the URL, or in another way in Javascript side like:

http://qvveb/qvapp/show.asp?ticket=xxxxxx&server=sigma

or in my ZFC-enabled page, show.asp

i think i must use something like below:

var qva = new Qva.PageBinding();

qva.View = "Qvs@Sigma|servis.qvw";

But i didnt find a suitable format.

Workbench documentation didnt answer my question.

I will be glad if you answer it.

P.S:

On my web server,

i registered qvscomremote.dll

i created necessary virtual directories (QvAjaxZfc and my web app Qvapp) in IIS.

So you can consider my web app. directly reaches /QvAjaxzfc Javascript libraries.

Many thanks.

My best regards.

ismail.

Not applicable

Ismail,


See if this file helps at all: http://community.qlik.com/media/p/97901.aspx

niceqlik
Partner - Contributor III
Partner - Contributor III
Author

Dear Jason,

Thanks for sharing this app with me. I have already tested it before and it was great.

But, i am right now not having diffuculties to generate tickets on a specified QVS.

I am trying to utilize QvsViewClient.asp for data pump.