I'm having trouble retriving a token to access a secure service online. I'm using a developer account. When I run it against a local install of ArcGIS Server it works fine I'm not 100% sure what the tokenurl would be and if the userid /password would just be the login I have for my developer site.
Thanks
Jim
I'm using code similar to the following to retrive the token:
public Dictionary<string, string> GetToken(string username, string password, string tokenUrl)
Dictionary<string, string> dictionary = new Dictionary<string, string>();
MapTalk mt = new MapTalk();
var myToken = "";
if (tokenUrl != "")
//#######################
var data = new NameValueCollection();
"username"] = username;
"password"] = password;
"expires"] = "1";
"f"] = "json";
JavaScriptSerializer jserialize = new JavaScriptSerializer();
TokenInfo x = jserialize.Deserialize<TokenInfo>(_getResponse(data, tokenUrl));
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var expire = epoch.AddMilliseconds(x.expires).ToLocalTime();
"token", myToken);
"expire",expire.ToString());
return dictionary;
else
"token","");
return dictionary;
public class TokenInfo
public string token { get; set; }
public long expires { get; set; }
public bool ssl { get; set; }
private string _getResponse(NameValueCollection data, string url)
string responseData;
var webClient = new WebClient();
var response = webClient.UploadValues(url, data);
Encoding.UTF8.GetString(response);
return responseData;
Solved! Go to Solution.
class AGOL { private string _token; private string _username; private string _password; public string Token { get { return _token; } } public string Username { get { return _username; } set { _username = value; } } public string Password { get { return _password; } set { _password = value; } } public AGOL(string UserName, string PassWord) { _username = UserName; _password = PassWord; _token = GetToken(UserName, PassWord); } public string GetToken(string username, string password) { var data = new NameValueCollection(); data["username"] = Username; data["password"] = Password; data["referer"] = "https://www.arcgis.com"; data["f"] = "json"; TokenInfo x = JsonConvert.DeserializeObject<TokenInfo>(_getResponse(data, "https://arcgis.com/sharing/rest/generateToken")); return x.token; ; } private string _getResponse(NameValueCollection data, string url) { string responseData; var webClient = new WebClient(); var response = webClient.UploadValues(url, data); responseData = System.Text.Encoding.UTF8.GetString(response); return responseData; } public class TokenInfo { public string token { get; set; } public long expires { get; set; } public bool ssl { get; set; } } }
class AGOL { private string _token; private string _username; private string _password; public string Token { get { return _token; } } public string Username { get { return _username; } set { _username = value; } } public string Password { get { return _password; } set { _password = value; } } public AGOL(string UserName, string PassWord) { _username = UserName; _password = PassWord; _token = GetToken(UserName, PassWord); } public string GetToken(string username, string password) { var data = new NameValueCollection(); data["username"] = Username; data["password"] = Password; data["referer"] = "https://www.arcgis.com"; data["f"] = "json"; TokenInfo x = JsonConvert.DeserializeObject<TokenInfo>(_getResponse(data, "https://arcgis.com/sharing/rest/generateToken")); return x.token; ; } private string _getResponse(NameValueCollection data, string url) { string responseData; var webClient = new WebClient(); var response = webClient.UploadValues(url, data); responseData = System.Text.Encoding.UTF8.GetString(response); return responseData; } public class TokenInfo { public string token { get; set; } public long expires { get; set; } public bool ssl { get; set; } } }
Thank you