Acabo de escribir mi primer servicio web, así que supongamos que el conocimiento de mi servicio web no existe. Quiero intentar llamar a una función dbClass desde el servicio web. Sin embargo, necesito algunos parámetros que están en la sesión. ¿Hay alguna manera de que pueda obtener estas llamadas de estas variables de sesión desde el servicio web?Variables de sesión y servicios web
Respuesta
Si está utilizando servicios web ASP.NET y desea tener un ambiente de sesión mantenida para usted, usted necesita para embellecer su método de servicio web con un atributo que indica que necesita una sesión.
[WebMethod(EnableSession = true)]
public void MyWebService()
{
Foo foo;
Session["MyObjectName"] = new Foo();
foo = Session["MyObjectName"] as Foo;
}
una vez hecho esto, puede acceder a los objetos similares a aspx sesión.
Metro.
Tal vez esto funcionará HttpContext.Current.Session [ "Nombre] O de lo contrario podría tener que tomar en algunos parámetros o almacenarlos en una base de datos
En general, los servicios web no deben basarse en los datos de la sesión. Piense en ellos como métodos ordinarios: los parámetros entran y sale una respuesta.
¿Por qué no? Estoy intentando implementar algo de seguridad, cuando un usuario inicia sesión en mi aplicación web, establezco una variable de sesión, para asegurar que el usuario que llamó al método haya iniciado sesión exitosamente en mi aplicación web, verifico esa variable de sesión y luego solo ejecuto el método web si tener los privilegios correctos, ¿es malo? ¿Cuál es la forma correcta de lograr mi objetivo? – EaziLuizi
Normalmente, a cada cliente se le debe emitir un token para que lo conserve.Luego enviaría ese token con cada solicitud como un encabezado, una querystring o un cuerpo de formulario para autenticarse. –
Su pregunta es un poco vaga, pero haré todo lo posible para responder.
Supongo que las variables de sesión existen en el servidor que realiza la llamada al servicio web, y no en el servidor que aloja el servicio web. En ese caso, deberá pasar los valores necesarios como parámetros de sus métodos de servicio web.
Debe evitar aumentar la complejidad de la capa de servicio al agregar variables de sesión. Como alguien señaló anteriormente, piense en los servicios web como métodos aislados que toman todo lo que se necesita para realizar la tarea desde su lista de argumentos.
si tiene que querer Session ["username"]. ToString(); al igual que en los demás # páginas C detrás aspx entonces simplemente debe sustituir [WebMethod] por encima del método de servicio Web con [WebMethod (EnableSession = true)]
gracias a :) metro
Para utilizar la sesión de servicio web tenemos que siga 2 pasos:
- Utilice el atributo [WebMethod (EnableSession = true)] en el método.
- Sesión ["Nombre"] = 50 (lo que quieras guardar) Por favor, comprueba el siguiente ejemplo.
[WebMethod(EnableSession = true)] public void saveName(string pname) { Session["Name"] = pname; }
- 1. Servicios web y retrotracción de transacciones
- 2. Cómo iniciar sesión JSON solicitudes de servicios web
- 3. ASP.NET MVC y servicios web
- 4. Asp.Net MVC y servicios web
- 5. servicios web, aplicación web
- 6. Powershell, servicios web y tipos de objeto
- 7. es tranquilo solo para servicios web O para servicios web Y páginas web?
- 8. Protección de servicios web
- 9. WCF, servicios web RESTful y autenticación personalizada
- 10. Compatibilidad con versiones anteriores y servicios web
- 11. Servicios web RESTful y verbos HTTP
- 12. Seguridad y autenticación en servicios web
- 13. ¿Servicios web por contrato?
- 14. Servicios web en Java
- 15. diferencia entre los servicios web y aplicaciones web
- 16. Servicios web Stateful vs. Stateless
- 17. variables de sesión vs variables locales
- 18. Servicios web tranquilos
- 19. Servicios web de Amazon: por dónde empezar
- 20. Servicios web de pruebas unitarias - HttpContext
- 21. Consumo interno de servicios web
- 22. geolocalización recomendaciones de servicios web
- 23. Variables de sesión de ASP a ASP.NET
- 24. Variables de sesión de ColdFusion
- 25. php cookies y variables de sesión y dirección IP
- 26. Autenticación centralizada y autorización para varios servicios web
- 27. Compartiendo sesión entre el servicio web y la aplicación asp.net
- 28. ¿Comparar y contrastar los servicios web REST y SOAP?
- 29. Autenticación de los servicios web WCF Rest.
- 30. Servicios web de Exchange y conjuntos de propiedades
Esto se ve fantástico. Tengo entendido, sin embargo, que los clientes del servicio web deberán devolver una cookie o responder un mensaje 302 Encontrado redireccionando. – froggythefrog
Puede crear un contenedor de cookies y conectarlo a su proxy de servicio web. A continuación, mantendrá las cookies devueltas, incluida la cookie de sesión de ASP.net. si tiene otros proxies que operarán dentro de la misma sesión, puede compartir el contenedor de cookies con ellos también. – Metro