Owin Simple Iniciar sesión No iniciar sesión -- # campo con asp.net-mvc campo con razor campo con owin camp Relacionados El problema

OWIN simple login not signing in


0
vote

problema

Español

Estoy intentando usar OWIN para iniciar sesión con una autenticación fija simple muerta, pero parece que no puedo hacer que funcione en absoluto. Siento que me estoy perdiendo algo muy fácil, pero parece que no puede resolverlo. No necesito ni cuido nada, excepto ahorrar la dirección de correo electrónico de la persona y no tener ningún deseo de OAuth, que es lo que parece que la mayoría de los tutoriales y muestras parecen mostrar. Cuando ejecuto el código de abajo, nunca se ha registrado y las reclamaciones de autenticación siempre están vacías cuando miro en el depurador.

MI PÁGINA WEB DE RAZOR:

  @using System.Security.Claims; @{      Microsoft.Owin.IOwinContext ctx = Request.GetOwinContext();     var usr = Request["text1"];     if (IsPost && usr == "valid@user.com")     {         ctx.Authentication.SignOut(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);          var claims = new List<Claim>();         claims.Add(new Claim(ClaimTypes.Email, usr));         claims.Add(new Claim(ClaimTypes.Name, var));         var id = new ClaimsIdentity(claims, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);         ctx.Authentication.SignIn(id);         //FormsAuthentication.SetAuthCookie("valid@user.com", false); // Also fails     }     var IP = HttpContext.Current.User.Identity.IsAuthenticated.ToString();     var text = "valid@user.com";  } <!DOCTYPE html> <html lang="en">     <head><title></title></head>     <body>         <p>Are we Logged in? <strong>@IP</strong>.</p>         <form action="" method="post">             <p>                 <label for="text1">First Number:</label>                 <input type="text" name="text1" value="@text" />             <p><input type="submit" value="Add" /></p>         </form>     </body> </html>   

con una clase de inicio de

  using Microsoft.AspNet.Identity; using Microsoft.Owin; using Microsoft.Owin.Security; using Microsoft.Owin.Security.Cookies; using Owin;  [assembly: OwinStartup(typeof(TypeScriptHTMLApp1.Startup1))]  namespace TypeScriptHTMLApp1 {     public class Startup1     {         public void Configuration(IAppBuilder app)         {             // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888             app.UseCookieAuthentication(new CookieAuthenticationOptions             {                 AuthenticationType =DefaultAuthenticationTypes.ApplicationCookie,                  AuthenticationMode = AuthenticationMode.Passive,             });         }     } }   

¿Por qué siempre está devolviendo FALSO y cómo puedo hacerlo iniciar con éxito?

Original en ingles

I am attempting to use OWIN to login with a dead simple fixed authentication, but I can't seem to get it to work at all. I feel like I'm missing something very easy, but can't seem to figure it out. I don't need or care for anything except saving the email address of the person and have no desire for oauth, which is what most of the tutorials and samples seem to show. When I run the below code, I am never signed in and the Authentication claims are always empty when I look in the debugger.

My Razor web page:

@using System.Security.Claims; @{      Microsoft.Owin.IOwinContext ctx = Request.GetOwinContext();     var usr = Request["text1"];     if (IsPost && usr == "valid@user.com")     {         ctx.Authentication.SignOut(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);          var claims = new List<Claim>();         claims.Add(new Claim(ClaimTypes.Email, usr));         claims.Add(new Claim(ClaimTypes.Name, var));         var id = new ClaimsIdentity(claims, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);         ctx.Authentication.SignIn(id);         //FormsAuthentication.SetAuthCookie("valid@user.com", false); // Also fails     }     var IP = HttpContext.Current.User.Identity.IsAuthenticated.ToString();     var text = "valid@user.com";  } <!DOCTYPE html> <html lang="en">     <head><title></title></head>     <body>         <p>Are we Logged in? <strong>@IP</strong>.</p>         <form action="" method="post">             <p>                 <label for="text1">First Number:</label>                 <input type="text" name="text1" value="@text" />             <p><input type="submit" value="Add" /></p>         </form>     </body> </html> 

with a startup class of

using Microsoft.AspNet.Identity; using Microsoft.Owin; using Microsoft.Owin.Security; using Microsoft.Owin.Security.Cookies; using Owin;  [assembly: OwinStartup(typeof(TypeScriptHTMLApp1.Startup1))]  namespace TypeScriptHTMLApp1 {     public class Startup1     {         public void Configuration(IAppBuilder app)         {             // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888             app.UseCookieAuthentication(new CookieAuthenticationOptions             {                 AuthenticationType =DefaultAuthenticationTypes.ApplicationCookie,                  AuthenticationMode = AuthenticationMode.Passive,             });         }     } } 

Why is it always returning false and how can I make it successfully login?

           
   
   

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Si está ejecutando localmente y no bajo SSL, asegúrese de instruir al manejo de cookies que no requiera SSL. De lo contrario, nunca emitirá la cookie y parecerá que nada está sucediendo. Esto me hizo perplejo solo la semana pasada.

  from itertools import groupby  ''' Find domain and server combination with the highest serial number      if serial numbers match, select the row with the least time. '''  print('time serial domain server')  src = ''' 15 14 google.com 8.8.8.8 19 45 google.com 8.8.4.4 98 76 google.com 208.67.222.222 20 23 intuit.com 8.8.8.8 45 89 intuit.com 8.8.4.4 43 21 intuit.com 208.67.222.222 78 14 google.com 8.8.8.8 92 76 google.com 8.8.4.4 64 54 google.com 208.67.222.222 91 18 intuit.com 8.8.8.8 93 74 intuit.com 8.8.4.4 65 59 intuit.com 208.67.222.222 '''  # Read data into a list of tuples, converting time & serial to int data = [row.split() for row in src.splitlines()] data = [(int(row[0]), int(row[1]), row[2], row[3]) for row in data]  # Sort and group data.sort(key=lambda t: (t[2], t[3], -t[1], t[0])) for k, g in groupby(data, key=lambda t: (t[2], t[3])):     print(list(g)[0]) 0  
 

If you are running locally and not under SSL, make sure you instruct the cookie handler not to require SSL. Otherwise it will never issue the cookie and it will seem like nothing is happening. This had me stumped just last week.

   <system.identityModel.services>       <federationConfiguration>          <cookieHandler requireSsl="false" />       </federationConfiguration>    </system.identityModel.services> 
 
 

Relacionados problema

0  OpenidConnectResponsTypes tiene CodeidToken, IDTOKEN y no contiene código como tipo de respuesta  ( Openidconnectresponsetypes has codeidtoken idtoken and it doesnt contain code a ) 
OpenidConnectResponsTypes tiene CodeidToken, IDTOKEN y no contiene código como tipo de respuesta. ¿Se recomienda la cogén de autoproducción de COOPENIDCONNECT...

10  Modificación de Owin Oauth Middleware para usar tokens del portador JWT  ( Modifying owin oauth middleware to use jwt bearer tokens ) 
Actualmente estoy tratando de crear una prueba de concepto para la autenticación basada en reclamaciones para una nueva aplicación utilizando una combinación ...

1  Almacenamiento / Recuperación de datos de usuario sin base de datos cuando se usa la autenticación de cookies Owin  ( Storing retrieving user data without database when using owin cookie authenticat ) 
¿Cómo almacenar y recuperar correctamente los datos que pertenecen a un usuario al usar la autenticación de cookies OWIN? No hay una base de datos disponible....

31  Cambiando el objeto de respuesta de Owin Middleware  ( Changing the response object from owin middleware ) 
My Owin Middleware es así. (Marco es ASP.NET WEB API). public class MyMiddleware : OwinMiddleware { public MyMiddleware(OwinMiddleware next) : base(nex...

-2  Conexión de autenticación del servidor en C #  ( Server authentication connection in c sharp ) 
Tengo un servidor web Azure con el que quiero conectarme con el nombre de usuario / contraseña. La autenticación del servidor es OWIN. También quiero envi...

14  ¿Por qué el token de acceso al almacenamiento en caché se considera malo en OAUTH2?  ( Why caching access token is consider bad in oauth2 ) 
Estoy siguiendo este artículo para revocar el acceso al usuario: http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-we...

0  Error en una prueba de integración para ASP.NET MVC5 Web API 2, OWIN y AUTOFAC. Httpcontext falso  ( Error in a integration test for asp net mvc5 web api 2 owin and autofac fake h ) 
Tengo aplicación ASP.NET MVC5 y WEBAPI2 con algunos MVC y apicontrollers. Se usa OWIN y AUTOFAC. Escribí una prueba de integración que llama un método de API ...

1  ¿Cómo establecer el punto de interrupción en Configureauth?  ( How to set breakpoint in configureauth ) 
Necesito establecer un punto de interrupción en la configuración de la configuración para depurar un problema que estamos teniendo. El siguiente artículo afi...

5  ReactJS con ASP.NET API web Múltiples proveedores de autenticación externa  ( Reactjs with asp net web api multiple external authentication providers ) 
Tengo una aplicación Reactjs con un backend de API web. La autenticación se maneja en el lado de WEBAPI utilizando proveedores de inicio de sesión externos (G...

5  Sesión de cierre correctamente en Owin MVC5  ( Closing session properly in owin mvc5 ) 
En nuestra aplicación web, que es MVC5, con OWIN, cuando nos registramos, tenemos este código: public ActionResult LogOut() { using (MiniPr...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos