首先,我有一個網站A,設定域驗證,打開時瀏覽器會自動彈出域驗證的輸入框。我在這個網站A里面放了一個頁面,如果域賬號登陸后,它會根據域賬號,回傳一串JSON內容:
后面我有另外一個網站B,這個網站B默認可以不登錄,可以查看資訊,但如果要編輯,需要登錄。我希望點右上角的登陸按鈕后,可以訪問網站A,彈出域驗證輸入框,輸入后,網站B獲取網站A頁面回傳的JSON,作為用戶資訊寫入到Session里。
我的寫法:
protected void btnLogin_Click(object sender, EventArgs e)
{
HttpClient client = new HttpClient();
string json = client.GetAsync("http://172.31.168.164:82/adlogin2.aspx").ToString();
UserInfo newuser = JsonConvert.DeserializeObject<UserInfo>(json);
Session.Add("username", newuser.username);
Session.Add("employeeid", newuser.employeeid);
userinfo.Visible = true;
//loginlink.Visible = false;
//Session.Add("username", "28021278");
}
但是回傳錯誤是401 Unauthorized.
請問應該如何才能在網站B的登陸程序里,讓網站A的登陸框彈出來呢?
uj5u.com熱心網友回復:
錯了,上面代碼回傳的錯誤是:Unexpected character encountered while parsing value: S. Path '', line 0, position 0.uj5u.com熱心網友回復:
感覺就是單點登錄啊。你用redis存盤session作為共享session的媒介就好了。
uj5u.com熱心網友回復:
我改在前臺用JS來實作,放了一個iframe,當JS控制iframe打開網站B登陸頁面時,可以彈出網站B的域賬號驗證框,輸入賬號后,網站B會回傳JSON,顯示在iframe里面。現在問題就變成了:如何JS獲取到iframe里的JSON?用innerHTML回傳是:<head></head><body></body>,沒有其他內容。
function getLogin(){
window.frames['login'].location.href = "http://網站B/adlogin2.aspx";
alert(window.frames['login'].document.contentDocument.innerHTML);
}
uj5u.com熱心網友回復:
如果用webbrowser倒是可以獲取檔案結構,像普通瀏覽器一樣操作轉載請註明出處,本文鏈接:https://www.uj5u.com/net/114928.html
標籤:ASP.NET
上一篇:WebService服務 Windows 下 java httpPost呼叫正常,linux 下呼叫失敗
下一篇:login
