में प्रेजेंटर के साथ एक शिबबोलेथ बहु-होस्टनाम वेबसाइट को प्रमाणित करने के लिए कैसे करें नोट: आईपम्स अंतरराष्ट्रीय और आईपम्स यूएसए शायद उसी सिस्टम का उपयोग करते हैं। ipums usa त्वरित साइनअप की अनुमति देता है। अगर आप अपने कोड का परीक्षण करना चाहते हैं, तो साइन अप करने के लिए https://usa.ipums.org/usa-action/users/request_access आज़माएं!आर
मैं आर भाषा और प्रेजेंटर के साथ https://international.ipums.org/ से प्रोग्रामेटिक रूप से फ़ाइल डाउनलोड करने का प्रयास कर रहा हूं। मुझे प्रेजेंटर का उपयोग करने की आवश्यकता है और आरसीआरएल नहीं है क्योंकि मुझे पोस्ट-प्रमाणीकरण की आवश्यकता है बड़ी फाइलें रैम में सीधे डिस्क पर डाउनलोड करने की आवश्यकता है। this is currently only possible with httr
as far as i know
दस्तावेज नीचे दिए गए पुन: उत्पादित कोड दस्तावेज़ पोस्ट (https://international.ipums.org/international-action/users/login) से मुख्य पोस्ट-प्रमाणीकरण पृष्ठ पर प्राप्त करने के लिए मेरे सर्वोत्तम प्रयासों को दस्तावेज करता है। किसी भी सुझाव या संकेत की सराहना की जाएगी! धन्यवाद!
my_email <- "[email protected]"
my_password <- "password"
tf <- tempfile()
# use httr, because i need to download a large file after authentication
# and only httr supports that with its `write_disk()` option
library(httr)
# turn off ssl verify, otherwise the subsequent GET command will fail
set_config(config(ssl_verifypeer = 0L))
GET("https://international.ipums.org/Shibboleth.sso/Login?target=https%3A%2F%2Finternational.ipums.org%2Finternational-action%2Fmenu")
# connect to the starting login page of the website
(a <- GET("https://international.ipums.org/international-action/users/login" , verbose(info = TRUE)))
# which takes me through to a lot of websites, but ultimately (in my browser) lands at
shibboleth_url <- "https://live.identity.popdata.org:443/idp/Authn/UserPassword"
# construct authentication information?
base_values <- list("j_username" = my_email , "j_password" = my_password)
idp_values <- list("j_username" = my_email , "j_password" = my_password , "_idp_authn_lc_key"=subset(a$cookies , domain == "live.identity.popdata.org")$value , "JSESSIONID" = subset(a$cookies , domain == "#HttpOnly_live.identity.popdata.org")$value)
ipums_values <- list("j_username" = my_email , "j_password" = my_password , "_idp_authn_lc_key"=subset(a$cookies , domain == "live.identity.popdata.org")$value , "JSESSIONID" = subset(a$cookies , domain == "international.ipums.org")$value)
# i believe this is where the main login should happen, but it looks like it's failing
GET(shibboleth_url , query = idp_values)
POST(shibboleth_url , body = base_values)
writeBin(GET(shibboleth_url , query = idp_values)$content , tf)
readLines(tf)
# The MPC account authentication system has encountered an error
# This error can sometimes occur if you did not close your browser after logging out of an application previously. It may also occur for other reasons. Please close your browser and try your action again."
writeBin(GET("https://live.identity.popdata.org/idp/profile/SAML2/Redirect/SSO" , query = idp_values)$content , tf)
POST("https://live.identity.popdata.org/idp/profile/SAML2/Redirect/SSO" , body = idp_values)
readLines(tf)
# same error as above
# return to the main login page..
writeBin(GET("https://international.ipums.org/international-action/menu" , query = ipums_values)$content , tf)
readLines(tf)
# ..not logged in
क्या आपने इसके लिए आरसेलेनियम के बारे में सोचा है? – Thomas
@ थॉमस हाय, मुझे नहीं पता कि कहां से शुरू करना है।मैं इसके लिए खुले रहूंगा, जब तक कि यह एक मनमाने ढंग से बड़ी फ़ाइल _post-authentication_ (जो 'प्रेजेंटर' कर सकता है लेकिन 'आरसीआरएलएल नहीं कर सकता) –
वास्तव में वहां कोई खाता नहीं होने के बिना प्रयास करने के लिए बहुत कुछ नहीं है :( – cyberj0g