Qlik Community

QlikView Management

Discussion Board for collaboration on QlikView Management.

Highlighted
danielrozental
Honored Contributor II

GetTicket Authentication still asking me for credentials to log in

I'm not really sure, why were you using tickets in the first place?

You can use custom users and the standard login page. If you don't like that page you can look into changing that but maintaining the functionality.

phersan_sme
New Contributor III

GetTicket Authentication still asking me for credentials to log in

The idea behind the ticketing system is driven by a Single Sign-On solution. By that I mean, at some point, the end-user has already logged into a portal/company website, and now you want to integrate qlikview (maybe with an IFrame) directly onto the company's website, etc. The user, as far as they're concerned, has already been authenticated through the portal, and logging in twice is redundant. The idea is to have a seemless integration between the portal and a QlikView application.

This would be easy with NTLM authentication, but we don't wanna use AD or Windows users. We're testing out the custom directory to leverage things like the built in "Change Password" function and keep everything within QlikView.

Thanks for your interest in this matter.

danielrozental
Honored Contributor II

GetTicket Authentication still asking me for credentials to log in

My own solution for this was to build my own AP but maybe things have changed since QV10, perhaps you should check with support.

Also, I don't know how QV carries the custom user from the login page for to the AP, maybe you can look into that, I don't believe they are using ticketing, if they're using a cookie or something like that maybe you can reproduce that as well and then use the standard AP.

Not applicable

GetTicket Authentication still asking me for credentials to log in

Same issue here. Can anyone provide insight.

Thanks

danielrozental
Honored Contributor II

GetTicket Authentication still asking me for credentials to log in

Can you provide any more details to your problem? have you read through the thread?

Not applicable

Re: GetTicket Authentication still asking me for credentials to log in

Does anyone has solved this problem?I'm currently stucked at the point, too.

I show a custom login page, where I can create a valid ticket (Post with Javascript) and load redirect to the URL http://localhost/qlikview/index.htm?ticket=GUID, where GUID is the retrieved ticket number.

The Access Point pops up, but shows me immediatly the my custom login page again.

On my server I'm working NOT with IIS, only the QVWS is running.

phersan_sme
New Contributor III

GetTicket Authentication still asking me for credentials to log in

I was never able to get my custom directory working with the GetTicket function. I have not revisited the issue in a while.

agigliotti
Honored Contributor II

Re: GetTicket Authentication still asking me for credentials to log in

Hi,

I have the same problem with my web app using web ticketing authentication: trying to open my qvw document the windows authentication comes up with username/password requests.

If I press Cancel the document is being opened correctly.


How can I remove this windows pop-up ?


I'm using QVWS with DMS authentication method.


I already tried passing the "anonymous=true" parameter in the URL, but inside my web app it doesn't works while taping the entire URL in browser address bar the qvw document is opened successfully with no authentication requests.


Below the .net code:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Text;

using System.Xml.Linq;

using System.IO;

using System.Net;


protected void Page_Load(object sender, EventArgs e)

    {

     String servernameEST="bi1.mdf.it";

            String username = "DB DSP TEN\\LRASPINI";

     String groupname = "123456";

            string Ticket = btnGetWebTicket(servernameEST, username, groupname);

            if (Ticket == "")

            {

                //ERRORE non c'è ticket

                return;

            }

            str_accpoint = lnkCallAccesspoint(servernameEST, username, groupname, Ticket);

     Response.Redirect(str_accpoint);

  }

//////////////////////////////////////////////////////

    protected string btnGetWebTicket(string servername, string username, string groupname)

    {

        string gruppi = "";

        StringBuilder groups = new StringBuilder();

        if (!string.IsNullOrEmpty(gruppi))

        {

            groups.Append("<GroupList>");

            foreach (string group in gruppi.Split(new char[] { ';' }))

            {

                groups.Append("<string>");

                groups.Append(group);

                groups.Append("</string>");

            }

            groups.Append("</GroupList>");

            groups.Append("<GroupsIsNames>");

            groups.Append("true");

            groups.Append("</GroupsIsNames>");

        }

        string webTicketXml = string.Format("<Global method=\"GetWebTicket\"><UserId>{0}</UserId>{1}</Global>", username, groups);

        bool chkAnonymous = false; //true;

        string result = CommHelper.Execute(webTicketXml, new Uri("https://" + servername + "/QvAJAXZfc/GetWebTicket.aspx?anonymous=true"), chkAnonymous, 10000);

      string Ticket = "";

        if (string.IsNullOrEmpty(result))

        {

            return "";

        }

        else

        {

            XDocument doc = XDocument.Parse(result);

            if (doc.Root.Element("_retval_") != null)

            {

                Ticket = doc.Root.Element("_retval_").Value;

                return Ticket;

            }

            if (doc.Root.Element("message") != null)

            {

                XAttribute xatt = doc.Root.Element("message").FirstAttribute;

                return "";

            }

            return "";

        }

    }

  protected string lnkCallAccesspoint(string servername, string username, string groupname, string ticket)

  {

        string docName = "Gestione Tenute";

        if (groupname != "")

            docName = docName + "_" + groupname;

        string txtTry = @"https://" + servername + @"/QvAJAXZfc/opendoc.htm?document=" + docName + @".qvw&anonymous=true&host=QVS@bi1";

        string txtBack = "http://connect.mdf.it/Admin/QlikView_Tenute.aspx";

        return "https://" + servername + string.Format("/QvAJAXZfc/Authenticate.aspx?type=html&anonymous=true&webticket={0}&try={1}&back={2}", ticket, txtTry, txtBack);

    }

public class CommHelper

{

    public static string Execute(string question, Uri iAddress, bool anonymous, int timeoutms)

    {

        try

        {

            HttpWebRequest client = (HttpWebRequest)WebRequest.Create(iAddress);

            if (!anonymous)

            {

                client.UseDefaultCredentials = true;

                client.PreAuthenticate = true;

            }

            client.Method = "POST";

            client.Timeout = timeoutms;

            client.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

            using (System.IO.StreamWriter sw = new StreamWriter(client.GetRequestStream()))

                sw.WriteLine(question);

            System.IO.StreamReader sr = new StreamReader(client.GetResponse().GetResponseStream());

            return sr.ReadToEnd();

        }

        catch (Exception)

        {

            return null;

        }

    }

}


Thanks

Andrea

Community Browser