最近一段时间做了一个SSO系统,类型为C/S、B/S混合模式。
C/S主要通过登录后在浏览器端植入Cookie来判断是否已登录。
B/S程序通过应用“wininet.dll”中的InternetGetCookie()、InternetSetCookie()方法来读取、创建Cookie。
InternetSetCookie("http://192.168.1.26/CAS", "LY_SSO2010", "Test;expires = Sat,01-Jan-2012 00:00:00 GMT");
/// <summary>
/// 根据域名查找相关Cookie
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private static string GetCookie(string url, string CookieName)
{
int size = 1000;
StringBuilder sb = new StringBuilder(size);
if (!InternetGetCookie(url, CookieName, sb, ref size))
{
Console.WriteLine("Error code:{0}", GetLastError());
}
return sb.ToString();
}