none
两个服务器都加入了域,上面的IIS站点都是采用windows身份认证,如何登陆一个站点后,不用输入用户密码登陆另一个? RRS feed

  • 问题

  • 下面的我登陆另一服务器站点的方法。

    (1)如果输入用户密码登陆没有问题,可以跳转到另一个服务的站点。

    (2)如果不输入用户密码(代码中间注释掉了传输用户密码的两行代码了,因为windows身份认证我是没法知道密码的),后面StatusCode已是"OK"了,但是后面不能重跳转到另一个服务器的站点。

    public void RouterSet(string userName, string password, string url)
            {
                try
                {
                    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

                    request.Method = "get";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.UseDefaultCredentials = true;
                    request.Credentials = CredentialCache.DefaultCredentials;
                    request.PreAuthenticate = true;

                    //获得用户名密码的Base64编码
                    //string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password)));

                    //添加Authorization到HTTP头
                    //request.Headers.Add("Authorization", "Basic " + code);

                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Response.Write(response.StatusCode); //OK
                    response.Close();
                    
                    Response.Redirect(url); //不能跳转,报401错误
                }
                catch (Exception ex)
                {
                    Response.Write("路由器设置错误:" + ex.Message);
                }
            }

    2015年8月27日 3:18

答案