如何使用表单身份验证asp.net工作获得enableCrossAppRedirects?

时间:2012-07-22 10:29:23

标签: asp.net c#-3.0 single-sign-on

有没有人遇到过这家酒店?我实际上是在为不同域中的2个asp.net网站实现单点登录。正在寻找一个示例代码? 非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您正在使用跨域,请查看this page,您需要确保使用无Cookie身份验证,因为Cookie不会跨域。

来自另一个Stack Question here的作者的一个很好的代码示例。

if (FormsAuthentication.EnableCrossAppRedirects)
{
text = context.Request.QueryString[name];
if (text != null && text.Length > 1)
{
    if (!cookielessTicket && FormsAuthentication.CookieMode == HttpCookieMode.AutoDetect)
    {
        cookielessTicket = CookielessHelperClass.UseCookieless(context, true, FormsAuthentication.CookieMode);
    }
    try
    {
        formsAuthenticationTicket = FormsAuthentication.Decrypt(text);
    }
    catch
    {
        flag2 = true;
    }
    if (formsAuthenticationTicket == null)
    {
        flag2 = true;
    }
}
if (formsAuthenticationTicket == null || formsAuthenticationTicket.Expired)
{
    text = context.Request.Form[name];
    if (text != null && text.Length > 1)
    {
        if (!cookielessTicket && FormsAuthentication.CookieMode == HttpCookieMode.AutoDetect)
        {
            cookielessTicket = CookielessHelperClass.UseCookieless(context, true, FormsAuthentication.CookieMode);
        }
        try
        {
            formsAuthenticationTicket = FormsAuthentication.Decrypt(text);
        }
        catch
        {
            flag2 = true;
        }
        if (formsAuthenticationTicket == null)
        {
            flag2 = true;
        }
    }
}
}