Hoy estoy trabajando en una función para que los tutores envíen mensajes en la empresa. Para decirlo sin rodeos, cuando un tutor ingresa por primera vez, no hay ningún mensaje, y luego se agrega y modifica el mensaje. interacción entre CS y la recepción, y lo implemento a través de Handler.
Debido a que desea modificar su mensaje, debe modificarlo según su ID. Sin embargo, generalmente los proyectos de la empresa guardan la información del usuario después de iniciar sesión, por lo que no hay duda de que la identificación debe obtenerse según la ID; .yo siempre al principio
No puedo obtener el ID, es decir, no puedo obtener el ID que quiero en el archivo cs. La forma en que lo obtengo es así: string uid = HttpContext.Current.Session[UserSessionPolicy.SESSION_USERID] as string;
Explique esto "UserSessionPolicy.SESSION_USERID", donde "UserSessionPolicy" es una clase especialmente utilizada para guardar información del usuario. Por supuesto, también guarda la ID del usuario, que es el "SESSION_USERID" en el código. Cuando hice clic en el botón Enviar, se informó un error como "El objeto no fue referenciado a una instancia". ¿Todos definitivamente pensarían que no se creó una instancia? Así es, simplemente no se crea una instancia, pero ¿cómo crear una instancia en Handler?
En cuanto a la sesión, todo el mundo sabe que la sesión es un ámbito que se utiliza para guardar el estado, por lo que se debe hacer referencia a un espacio de nombres en el controlador. Encontré este problema antes.
Tenía tal dolor de cabeza que lo resolví hoy. Hoy escribiré mi moraleja aquí y la compartiré con todos. Espero que en el futuro los internautas brinden un poco de ayuda cuando encuentren problemas similares.
En mi ejemplo, el tutor necesita usar ID en su mensaje. ¿Se puede hacer esto para otros usuarios que necesitan usar ID? En términos generales, la clase que procesa datos a través de Handler debe hacer referencia al nombre "using System.Web.SessionState;"
espacio, entonces esa clase hereda "IReadOnlySessionState". Por ejemplo:
código
<%@ WebHandler Language="C#" Class="TeacherInfoHandler" %>usando System;usando System.Web;usando com.rrs.baby.business.Information;usando com.rrs.core;usando System.Web.Script.Serialization ;using System.Web.SessionState;//Utilice el ID que se guardará en la sesiónusing System.Collections;clase pública TeacherInfoHandler: IHttpHandler, IReadOnlySessionState{ //Cuerpo del método}
En esta clase TeacherInfoHandler, puede utilizar el valor guardado por la sesión.