Empecé a codificar un LoginModule para Nancy, pero se me ocurrió que posiblemente necesite realizar la autenticación de otra manera. ¿Hay una forma aceptada de hacer auth en Nancy? Estoy planeando dos proyectos en este momento: servicio web y json. Necesitaré auth para ambos.¿Cómo debo manejar la autenticación con Nancy?
Respuesta
Como Steven escribe Nancy admite la autenticación básica y de formularios desde el primer momento. Echar un vistazo estas dos aplicaciones de demostración para ver cómo hacer cada uno: https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Forms y https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Basic
partir de la segunda de esas demos aquí es un módulo que requiere autenticación:
namespace Nancy.Demo.Authentication.Forms
{
using Nancy;
using Nancy.Demo.Authentication.Forms.Models;
using Nancy.Security;
public class SecureModule : NancyModule
{
public SecureModule() : base("/secure")
{
this.RequiresAuthentication();
Get["/"] = x => {
var model = new UserModel(Context.CurrentUser.UserName);
return View["secure.cshtml", model];
};
}
}
}
y un fragmento de programa previo que configura la forma auth en la canalización de solicitud:
protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context)
{
// At request startup we modify the request pipelines to
// include forms authentication - passing in our now request
// scoped user name mapper.
//
// The pipelines passed in here are specific to this request,
// so we can add/remove/update items in them as we please.
var formsAuthConfiguration =
new FormsAuthenticationConfiguration()
{
RedirectUrl = "~/login",
UserMapper = requestContainer.Resolve<IUserMapper>(),
};
FormsAuthentication.Enable(pipelines, formsAuthConfiguration);
}
Esta respuesta es perfecta para un sitio web impulsado por Nancy. Para un servicio, todavía le falta algo a Nancy. He enviado una solicitud de extracción (https://github.com/NancyFx/Nancy/pull/650#issuecomment-6416528) que contiene una nueva pieza de autenticación sin estado. Ese tipo de autenticación redondea a Nancy (al menos para mí) como una gran tecnología de proveedor de servicios o web. –
@ByronSommardahl Veo que su solicitud de extracción forma parte de Nancy ahora. ¡Bonito! –
creé un ejemplo formularios de solicitud de autenticación web con gestión de usuarios con Nancy para mi propio aprendizaje. Está en Github aquí si quieres jugar con él.
No- 1. ¿Cómo manejar la autenticación HTTP usando HttpURLConnection?
- 2. Cómo manejar la Autenticación básica en WebView
- 3. ¿Cómo manejar la autenticación y autorización con ahorro?
- 4. C#: ¿Cómo debo manejar la aritmética con números enormes?
- 5. ¿Cómo debo manejar la Autorización/Autenticación en mi aplicación Asp.net MVC?
- 6. ¿Cómo manejar la persistencia de autenticación de usuario en IOS?
- 7. ¿Cómo debo hacer la autenticación en un sitio ASP.Net MVC?
- 8. ¿Cómo debo manejar cadenas Interning en deserialización?
- 9. ¿Cómo manejar la autenticación en el servicio web PHP REST?
- 10. Nancy: FormsAuthentication - Comenzando
- 11. Encuadernación con modelo de Nancy a la clase infantil
- 12. ¿Qué errores/excepciones debo manejar con urllib2.Request/urlopen?
- 13. Estrategias para manejar la autenticación y autorización de usuario multiplataforma
- 14. ¿Qué errores debo manejar? ¿Cuáles son "fatales"?
- 15. ¿Qué debo usar para la autenticación de usuario en PHP?
- 16. Prueba de manejo Nancy Módulos
- 17. ¿Cómo debo manejar las excepciones comprobadas en JavaConfig de Spring?
- 18. Error al manejar ¿Debo arrojar una excepción? ¿O manejar en la fuente?
- 19. Nancy muestra de marco de aplicación
- 20. ¿Cómo debo manejar el decimal en SQLalchemy & SQLite?
- 21. ¿Cómo debo manejar correctamente las excepciones en Python3
- 22. ¿Cómo debo manejar este caso de uso usando EventMachine?
- 23. ¿Cómo debo manejar la identidad del usuario para una aplicación Window Phone/WCF/ASP.NET MVC?
- 24. ¿Cómo debo manejar las excepciones en esta función C#?
- 25. ¿Cómo debo manejar las rutas de Windows/Linux en C#
- 26. Información del usuario en Nancy
- 27. cómo manejar la paginación con Backbone.Marionette
- 28. ¿Cómo realizo la autenticación básica con RestClient?
- 29. Cargar ejemplos de archivos grandes con autocandidata Nancy
- 30. ¿Cómo manejar fusiones con hgsubversión?
muy seguro de lo que estás preguntando - ¿en qué estabas escribiendo y lo que es "una manera diferente"? La autenticación de formularios y la autenticación básica se admiten de manera inmediata. –
Bueno, para el sitio web en Nancy, formularios funciona muy bien. Para mi servicio json, he escrito mi propia pieza de autenticación que comprueba una clave de API en cada solicitud. –