假设我有一个Web应用程序MyApp。当我访问这个网络应用程序时,我输入了用户身份验证信息(用户名和密码),然后从这个网站,想要访问另一个网站,说你的网站也会要求身份验证。两个站点的相同身份验证都应该没问题。
所以我想将MyApp上的用户身份验证数据传递给代码中的YourSite。然后我写了一个http处理程序,如:
public void ProcessRequest(HttpContext context)
{
string url = "http://YourSite/page/...";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
CredentialCache myCache = new CredentialCache();
NetworkCredential netCredential = new NetworkCredential("myname", "mypassword", "");
myCache.Add(new Uri(url), "Basic", netCredential);
myCache.Add(new Uri(url), "Digest", netCredential);
myCache.Add(new Uri(url), "Negotiate", netCredential);
myReq.Credentials = myCache;
//.....
}
但我不想在代码中设置用户名和密码,我想将当前用户身份验证数据传递给YourSite。
如何实施此请求?
========== Moro关于我的情况的信息: MyApp是在IIS上运行的Asp.NET wep应用程序(Windows身份验证)。 YourSite是一个在另一个盒子上运行Tomcat的Java应用程序。 这两个应用程序都配置为在同一个Windows域服务器上使用Windows Active Directory用户帐户。
============更多信息: 我将上面的代码更改为(尝试使用当前凭据):
public void ProcessRequest(HttpContext context)
{
string url = "http://YourSite/page/...";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Credentials = CredentialCache.DefaultCredentials;
//.....
}
但无法通过身份验证。
答案 0 :(得分:0)
您可以在YourSite页面上使用MyApp网站的1像素乘1像素iframe,然后通过javascript / ajax传递信息吗?我想我会选择Darin的评论并建议OpenID,但这可能是一个选择。我没试过,所以请告诉我它是否有效:)
答案 1 :(得分:0)