Jump to content

Adriano_MSB

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Comum

About Adriano_MSB

  1. Adriano_MSB

    asp.net core identity com nhibernate

    Pessoal, estou iniciando um projeto em aps.net core, e estou tentando implementar o identity mas sem o entityframework, pois meu projeto será todo em nhibernate. Eu fiz o dev mas estou com um problema que não consigo resolver. Sempre que eu rodo meu projeto eu recebo a seguinte mensagem. InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.IUserStore`1[iFaiz.Web.Models.ApplicationUser]' while attempting to activate 'Microsoft.AspNetCore.Identity.UserManager`1[iFaiz.Web.Models.ApplicationUser]'. Pesquisando na internet tem muita informação sobre esse erro, e sempre mandam adicionar um comando no Startup que é esse abaixo: services.AddIdentity<Models.ApplicationUser, NHibernate.AspNetCore.Identity.IdentityRole>().AddDefaultTokenProviders(); Mas mesmo inserindo ele, nada muda, o erro continua igual. No meu Controller eu estou injetando a mesma classe. public AccountController( UserManager<Models.ApplicationUser> userManager ,SignInManager<Models.ApplicationUser> signInManager ,IEmailSender emailSender ,RoleManager<IdentityRole> roleManager ,ILogger<AccountController> logger ) { _userManager = userManager; _signInManager = signInManager; _emailSender = emailSender; _roleManager = roleManager; _logger = logger; } Meu Startup public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); var myEntities = new[] { typeof(Models.ApplicationUser) }; var configuration = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2012.ConnectionString(Configuration.GetConnectionString("ConexaoIFaiz")).ShowSql()) .ExposeConfiguration(cfg => { cfg.AddDeserializedMapping(MappingHelper.GetIdentityMappings(myEntities), null); }); var factory = configuration.BuildSessionFactory(); var session = factory.OpenSession(); var userManager = new UserManager<Models.ApplicationUser>(new UserStore<Models.ApplicationUser>(session),null, null, null,null, null,null,null,null); services .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => { options.LoginPath = new PathString("/Acesso/Login"); options.AccessDeniedPath = new PathString("/Acesso/AcessoNegado"); }); services.AddMvc(config => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); config.Filters.Add(new AuthorizeFilter(policy)); }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddIdentity<Models.ApplicationUser, NHibernate.AspNetCore.Identity.IdentityRole>().AddDefaultTokenProviders(); } Por favor poderia me ajustar a resolver esse erro? Obrigado.
  2. Adriano_MSB

    Ajax em background

    Pessoal eu tenho uma aplicação com uma pagina que faz uma chamada ajax para meu server o tempo todo a cada 5 segundos. A pagina em si funciona muito bem, mas tem um grande problema a qual não sei o que fazer. A cada 5 seg, eu faço uma chamada no server para verificar se chegou alguma mensagem, pois o usuário tem por obrigação responder imediatamente. Então quando o server responde com novas mensagens eu toco um som para que o usuário saiba que chegou mensagem e faça o trabalho dele. Isso funciona, mas tem um porem, o usuário não fica la olhando pra tela do sistema, ele minimiza a tela do navegador e vai fazer outras coisas, nessa que ele minima o navegador depois de alguns minutos as chamadas ajax param, é como se o navegador parasse de executar os scripts, mas se ele volta para a tela as chamadas voltam a acontecer. Devido a esse problema, a tela não esta atingindo o proposito, pois não esta alertando o usuário. A linguagem, por de traz é asp.net mvc, mas acho que esse problema não é na programação uma vez que ele funciona sem erros. Eu devo fazer alguma configuração para que a pagina continue executando os scripts enquanto estiver minimizada ou o usuário estiver em outra aba?
  3. Adriano_MSB

    Usuários sendo desconectados

    Pessoal, estou tendo um problema com minha aplicação e gostaria de contar com a ajuda de vocês. Eu tenho uma aplicação em C# MVC5, e estou fazendo a autenticação com asp.net identity 2.0. Eu configurei o cookie do usuário, para expirar em 1 hora, porem tenho recibo muitas reclamações de usuários que em poucos minutos de inatividade o sistema esta pedindo para se logar novamente. Minha aplicação é usada por varias empresas, e eu tenho varias aplicações no iis, e cada uma delas usa um pool diferente. Porem a aplicação é a mesma, eu apenas subo varias delas cada uma apontando para uma base diferente, porem estruturalmente as bases são idênticas também. Como são usuários de empresas diferentes que relatam o mesmo problema, eu descartei ser algo local da maquina do usuário, tipo estar limpando cache ou alguma aplicação na maquina local estar fazendo estar excluindo cookie sem ciência do usuário., até porque são usuários com pouco conhecimento em informatica e duvido que estão fazendo isso, e como falei são muitos relatos. Então revisei a aplicação, e me parece que implementei correto, conforme os inúmeros artigos existentes na internet, ou pelo menos eu ainda não achei algo que tenha feito de errado. Eu já fiz vários testes, me loguei e fiquei por 20,30,40,50,55 minutos e não caiu, e apos os 60 minutos, cai conforme o esperado. Então é algo intermitente. Bom pensei que pudesse ser o meu iis, então fui no pool da aplicação e aumentei o limite da memoria privada para 2gb antes de reciclar mas ainda continuo a receber relatos de queda. Dai fiz um teste, pensei, mesmo que o iis esteja reciclando o pool, o meu cookie esta la, e dentro da validade. Então fiz um teste, me loguei na aplicação e deu um iisreset /stop no servidor fui na aplicação dei um f5, para garantir que estava tudo fora, depois dei um iisreset /start no server. Fui na aplicação e dei outro f5. E aplicação entrou sem pedir senha. Então suponho que mesmo que o iis esteja reciclando demais, a aplicação não deveria cair pro usuário mesmo assim, pelo fato do cookie estar ativo, correto? Uma vez que após iniciar o iis não me pediu senha novamente. Chequei o consumo do servidor e raramente ultrapassa os 60% de uso de memoria, e processador não chega a 50%. São 16gb de RAM e 2 processador 4 núcleos. Depois de todos os testes, fui ver os logs do iis, dai eu entro numa área que conheço pouco. de fato la mostra que o IIS recicla os diversos pools varias vezes ao dia. Mas no exemplo do teste acima, isso não deveria fazer o usuário se desconectar certo? Outra coisa, que me chamou atenção, nos logs do windows tem muito log de erro do nhibernate (uso pra tudo). mas o estranho que meus usuarios não relatam erro na aplicação em si, como pode o nhiberdate gerar tantos erros, sem que isso se manifeste em erros em tela? Será que tem relação? Bom pessoal, tentei relatar em detalhes o que acontece, mas já são sei mais pra onde correr, alguém pode me ajudar? app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, ExpireTimeSpan = TimeSpan.FromHours(1), LoginPath = new PathString("/Acesso/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, IdentityUser> ( validateInterval: TimeSpan.FromHours(1), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager) ) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.