Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all.... I Recently installed QV11.2 in 3 machines. machine1 QVS, machine2 QVP and machine3 IIS7.5...... I tried to use QMS API... to open a document, but I have a problem using webTickets.... with DMS
Apparently I get the webticket... but when the docoment is open I get two errors message:
***When I try to open with QvAjaxZfc: "You do not have permission to view this directory or page"
url :
****when i try to open with QvPlugin: "Failed to open document, You don't have access to this document" (QlikOcx)
.I have my IIS server with anonymous account , the default web site with anonymus auth, also the app QvAjaxZfc with anonymous and the webticket.aspx with windows auth ....
I think my C # code gets in a wrong way the webticket. Because when I concatenate into a url i get that errors. Also... when I use the GetTicket.aspx file instead GetWebticked.aspx the value of the ticket is empty.
p.s. when I configure the document with "All users" permission QvPlugin opens the document correctly, but this isn't that I want.
QVS: tca-qvs
QVP: tca-qvp
QVWS: tcb-web (iis 7.5)
public static string getTicket(string User)
{
string usergroups=@"";
string QlikViewServerURL = "http://tcb-web/QVAJAXZFC/GetWebTicket.aspx";
StringBuilder groups = new StringBuilder();
if (!string.IsNullOrEmpty(usergroups))
{
groups.Append("<GroupList>");
foreach (string group in usergroups.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></Global>", User);
HttpWebRequest client = (HttpWebRequest)WebRequest.Create(new Uri(QlikViewServerURL));
string uri = client.RequestUri.ToString();
client.PreAuthenticate = true;
client.Method = "POST";
client.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
NetworkCredential myCred = new NetworkCredential("user", "pwd", "domain");
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(uri), "NTLM", myCred);
client.Credentials = myCache;
var writer = new StreamWriter(client.GetRequestStream());
writer.Write(webTicketXml);
writer.Flush();
var reader = new StreamReader(client.GetResponse().GetResponseStream());
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(reader.ReadToEnd());
return xmlDocument.InnerText;
}
Any clue?
Thanks a lot!