如何在SSO中从当前应用程序设置另一个asp.net应用程序的会话

时间:2016-02-04 10:14:37

标签: c# asp.net session

我正在使用formauthentication开发单点登录应用程序。在我的应用程序使用成员资格和SQL服务器状态维护之前,我没有任何问题。但是我使用会话检查用户的其他应用程序之一是否已登录。

在这种情况下,我无法登录使用会话的应用程序。我正在尝试从SSO应用程序设置会话,但它显示会话始终为空。

有人可以帮帮我吗?

这是我设置会话的sso应用程序代码。

if (Membership.ValidateUser(sUserName, sPass))
{
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
      1,                                     // ticket version
      sUserName,                              // authenticated username
      DateTime.Now,                          // issueDate
      DateTime.Now.AddMinutes(30),           // expiryDate
      isPersistent,                          // true to persist across browser sessions
      "Test SSO",                              // can be used to store additional user data
      FormsAuthentication.FormsCookiePath);  // the path for the cookie

    // Encrypt the ticket using the machine key
    string encryptedTicket = FormsAuthentication.Encrypt(ticket);

    // Add the cookie to the request to save it
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
    cookie.HttpOnly = true;
    Response.Cookies.Add(cookie);
    FormsAuthentication.SetAuthCookie(sUserName, false);
}
Session["UserName"] = sUserName;

这是使用会话的另一个应用程序的代码。

if (Session["UserName"] != null)
{
    HostPath = ConfigurationManager.AppSettings["HostPath"].ToString();
}
else
{
    Response.Redirect("~/Account/Login.aspx");
}

这里我总是得到会话名称为null,所以它总是重定向我的登录页面。

我需要从我的SSO应用程序设置第二个应用程序的会话。这是我的要求帮助。

由于

0 个答案:

没有答案