小编Pin*_*ski的帖子

在Angular2中登录后刷新标题

所以我有一个标题组件,显示用户名或"登录",具体取决于他们是否登录.我还有一个Login组件,它执行登录的所有业务逻辑.它们目前没有父/子关系.

当用户登录时,除非在浏览器中完成整页刷新,否则标题不会刷新或更改.我一直在网上搜索和阅读有关不同方法的大量搜索.ngOnChanges,NgZone,ApplicationRef和ChangeDetectorRef似乎是最受欢迎的.我正在尝试在ChangeDetectorRef中实现此行为,因为这似乎与我的情况最相关.但是,我似乎无法找到如何使用它的实际示例.

我把它编码了,但它似乎没有做任何事情.任何意见,将不胜感激.我甚至接受我采取错误的方法,除了ChangeDetectorRef之外还需要使用另一种解决方案.

LoginComponent

import { Component, OnInit } from '@angular/core';
import { Response } from '@angular/http';
import { Router } from '@angular/router';

import { AuthenticationService } from '../service/authentication.service';

@Component({
    selector: 'login-component',
    templateUrl: './login.component.html'
})

export class LoginComponent implements OnInit {
    constructor(private router: Router, 
                private authenticationService: AuthenticationService) { }

    ngOnInit() {
        // Resets the login service.  
        // This is one of the events that should cause the refresh.
        this.authenticationService.logout();
    }

    login() {
        /*
        Authentication code
        This is the other event …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-changedetection angular

14
推荐指数
2
解决办法
2万
查看次数

.net Core - 使用AWS Load Balancer和Elastic Beanstalk的HTTPS不起作用

我有一个在我的本地环境中正确运行HTTPS的网站.当我将其上传到AWS时,它只会超时或重定向.

我在AWS中的设置是一个Elastic Beanstalk应用程序,一个运行MS SQL的RDS数据库,我添加了一个Load Balancer来转发HTTPS请求,我有一个正确分配给Load Balancer的SSL证书.从我可以告诉我的应用程序正在运行,实际上,实体框架已启动并在我的RDS实例中正确构建了我的数据库.我无法通过互联网访问该网站.

我尝试过以不同的方式设置听众.如果我像这样设置它们,它只是永远重定向: 永远重定向

如果我这样设置它们,它只会超时: 在此输入图像描述

我的Startup.cs中默认的HTTP/HTTPS端口转发代码:

public void ConfigureServices(IServiceCollection services)
{
    // Sets all calls to require HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
    services.Configure<MvcOptions>(options =>
    {
        options.Filters.Add(new RequireHttpsAttribute());
    });
    ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // Force all HTTP requests to redirect to HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
    var options = new RewriteOptions().AddRedirectToHttps();
    app.UseRewriter(options);

    ...

    app.UseForwardedHeaders(new ForwardedHeadersOptions
    {
        ForwardedHeaders = ForwardedHeaders.XForwardedFor |
                            ForwardedHeaders.XForwardedProto
    });
    ...
}
Run Code Online (Sandbox Code Playgroud)

我花了好几天时间才开始工作.我已经尝试取出所有的HTTPS代码,但这不起作用.我已经尝试过像这样这样的博客的代码解决方案,但这也无效.根据我的阅读,Load Balancer最终处理HTTPS请求,然后将HTTP请求转发给我的应用程序.但我不知道如何正确处理,仍然强制执行HTTPS,并将HTTP重定向到HTTPS.

这似乎是没有一堆设置就可以开箱即用的东西.如果不是,我认为现在很多其他人都会遇到这个问题,并且在互联网上会有关于它的信息.我错过了一些小事吗?因为我完全在我的智慧结束.

如果你能回答这个问题,那么你将成为我的新英雄.

https amazon-web-services amazon-elastic-beanstalk .net-core asp.net-core

10
推荐指数
1
解决办法
2099
查看次数

有没有办法在java中使用package-private来允许其他包访问?

所以我已经在C#工作了很多年,现在正在使用Java.在C#中,您可以使用internal关键字从公共视图中隐藏类/方法,但如果您特别授予它,则允许某些程序集/包访问.当我环顾Java时,我看不到任何与内部直接相同的东西.

我发现了包私有.然而,这使它完全隐藏在外面的世界.Java中是否有一种方法允许某些其他包访问内部代码而不将其公开?

如果你问为什么我会这样做,这个答案通常是单元/集成测试,或者需要让某些可信任的包访问代码而不是重复它.我知道有些人认为你不应该测试私有/内部代码.我也知道允许内部访问通常不是很好的软件工程.我对这些话题的讨论并不感兴趣,只是好奇你是否可以做我想做的事情.

谢谢.

c# java internal package-private

5
推荐指数
1
解决办法
176
查看次数

使用 ASP.NET Identity 2.2.1 设置简单注入器

因此,我一直在尝试设置 ASP.NET Identity 2.2.1,但一直遇到障碍。作为应该由框架自动生成的东西,配置起来确实很复杂。我想我已经快完成了,但在使用简单注入器设置 IoC 时仍然遇到问题。

我一直在阅读有关这些问题的其他 StackOverflow 问题和博客。其中大多数看起来已经过时了,因为它们处理的是 ASP.NET Identity 1.0。从 2.0 到 2.2.1 甚至有足够的变化,我遇到了一些过时解决方案的问题。或者这些解决方案涉及其他 IoC 框架,但我无法将它们转换为简单注入器。我使用过其他 IoC 框架,但我是简单注入器的新手。

更新- Ric .Net 在他的评论中的第一个链接非常有帮助。我已经重新格式化了我的工作以适应他的建议,我想我已经快完成了。但我仍然有一个问题。我已完成用下面的代码替换以前的代码。

1)我更新了ApplicationDbContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(string connectionstring)
        : base(connectionstring, throwIfV1Schema: false)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

2)我从ApplicationUserManager中删除了 Create() 方法,并将其移至一个初始化所有简单注入器代码的类中:

public static class SimpleInjectorInitializer
{
    public static Container Initialize(IAppBuilder app)
    {
        var container = GetInitializeContainer(app);

        container.Verify();

        DependencyResolver.SetResolver(
            new SimpleInjectorDependencyResolver(container));

        return container;
    }

    public static Container GetInitializeContainer(
              IAppBuilder app)
    { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc simple-injector asp.net-identity

4
推荐指数
1
解决办法
3309
查看次数