功能描述
1. 做一个网站A,是通过IIS进行用户认证的;
a) A网站包含一个登陆界面能进行验证用户和密码;
b) A网站包含一个主页面,当用户密码输入正确进入此界面,主页面只需先生登陆成功信息即可;
2. 再做一个网站B,只有一个页面,页面上只有一个按钮,点击此按钮能直接打开A网站的主界面,不用输入A网站的用户和密码,也就是你需要在按钮的事件中用代码模拟登陆A网站,然后打开A网站的主界面。开发环境
以下是建议开发环境,因为我们项目是这个环境,当然你可以按照你的开发环境进行,但必须是微软的开发环境
Visual Studio 2010
Framework 3.5
C#语言
运行环境
以下是建议运行环境,因为我们项目是这个环境,当然你可以按照你的运行环境进行,但必须是微软的运行环境Windows 2008 Server 64bit
IIS 7.0

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <TITLE>模拟登陆</TITLE>
    </HEAD>
    <BODY><script type="text/javascript">
    var xmlHttp; function createXMLHttpRequest(){if(window.ActiveXObject){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}else if (window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}} function startRequest(){
    if(userid.value=="")
    {
        alert("请输入用户名!");
        userid.focus();   
    }
    else if(password.value=="")
    {
        alert("请输入密码!");
        password.focus(); 
    }
    else
    {    createXMLHttpRequest();
        
        xmlHttp.onreadystatechange=handleStateChange;
        
        xmlHttp.open("GET","http://yx-pc/MySite/Person.aspx",true,userid.value,password.value);
        
        xmlHttp.send(null);
    }} function handleStateChange(){if(xmlHttp.readyState == 4){
        if(xmlHttp.status == 200) {        window.location="http://yx-pc/MySite/Person.aspx";    }
        else
        {
            alert("您的用户名或者密码不正确,请联系管理员!");
        }}
    }
     
    </script>
      <label>userid
      <input type="text" name="userid">
      </label>
      <p>
        <label>password
        <input type="password" name="password">
        </label>
      </p>
      <p>
        <label>
        <input type="submit" name="Submit" value="提交" onClick="javascript:startRequest();">
        </label>
      </p></BODY>
    </HTML>
      

  2.   

    谢谢yeness,不过这个对我们不可行呢。
      

  3.   

    [b]这个是针对于那个自己开发的登录页面的,而非基于IIS的Windows认证
      

  4.   


    不用输入A网站的用户和密码,也就是你需要在按钮的事件中用代码模拟登陆A网站,然后打开A网站的主界面。
    -----------------------------------------------------------------
    何解?Oauth协议登陆?
      

  5.   

    不是 网站基于Windows 认证,弹出的登录框,在查看网页源码的时候,会发现是空的,不会记录这个登录框的任何信息。
      

  6.   

    在东西是System.Web.Security空间下的FormsAuthentication具体的东西俺们不多说,自己看msdn,他比俺们说的清楚
      

  7.   

    可以把B做成代理服务器,前提是B和A要在同一域中,B有该域的访问账号。
      

  8.   

    原理是很简单的,可以用下面这段示意代码说明:// 在服务器B上注册一个HttpHandler,处理所有页面请求
    public class ProxyServer : IHttpHandler
    {
    //当收到客户端请求后,进行如下处理:
    public void ProcessRequest(HttpContext context)
    {
    // 把访问改成指向ServerA的访问地址
    String url = "http://ServerA" + context.Request.Path; // 访问ServerA上的该页面,并带上ServerB的访问凭据
    var wc = new WebClient();
    wc.Credentials = CredentialCache.DefaultCredentials;
    var response = wc.DownloadString(url); // 得到结果后原样传回给客户端
    context.Response.Write(response);
    }
    }当然上面的代码只是示意性的,实际还要考虑Get/Post等不同请求方式、支持不同的协议、cookie、缓存、代理服务器本身的管理等。好在代理服务器很多,有开源免费的也有商用的,可以根据你的需求选择。