Estoy tratando de compartir sesiones entre dos aplicaciones web, ambas alojadas en el mismo servidor. Una es una aplicación de formularios web .net 2.0 y la otra es una aplicación .NET 3.5 MVC2.Compartiendo sesiones entre aplicaciones usando el servicio de estado de sesión de ASP.NET
Ambas aplicaciones han puesto su sesión de esta manera:
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
/>
En la solicitud de formulario web Estoy publicar la clave de la sesión para la aplicación MVC:
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session["myvariable"] = "dan";
string sessionKey = HttpContext.Current.Session.SessionID;
//Followed by some code that posts sessionKey to the other application
}
entonces yo lo reciba en el Aplicación MVC e intente utilizar la misma sesión como esta:
[HttpPost]
public void Recieve(string sessionKey)
{
var manager = new SessionIDManager();
bool redirected;
bool IsAdded;
manager.SaveSessionID(HttpContext.ApplicationInstance.Context, Id, out redirected, out IsAdded);
var myVar = Session["myvariable"];
}
La clave se publica pero la sesión no parece estar cargada en la aplicación MVC, es decir, sessionKey es nula. ¿Puedo hacer lo que estoy tratando de hacer?
Puede publicar el código para publicar ID de sesión en otra aplicación – kk1076
https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/ – sotn
El enlace en @sotn comment (https://blogs.msdn.microsoft.com/toddca/2007/01/25/sharing-asp-net-session-state-across-applications/) muestra cómo causar la sesión SQL proveedor para devolver la misma identificación de la aplicación para todas las aplicaciones, para que efectivamente compartan la misma sesión – AgapwIesu