相关疑难解决方法(0)

部署后ASP.Net核心身份登录状态丢失

我正在使用ASP.Net Core和MS Identity,我试着理解为什么在每次部署后登录用户都会被注销.我在IIS 8.5上运行

我一直在尝试此线程中的方法(设置静态机器密钥) ASP.NET Identity 2在部署后 通过在IIS UI中的服务器级别生成静态密钥并将以下内容添加到网站的web.config来重新登录:

<system.web>
    <machineKey validationKey="XXX"
        decryptionKey="XXX"
        validation="SHA1" decryption="AES"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在:

  • 用户登录
  • 停止网站
  • 开始网站
  • 用户需要再次登录

但我也这样说:

  • 用户登录
  • 重启网站
  • 用户仍然登录

什么可以导致用户注销?有关如何避免这种情况的任何想法?

asp.net iis asp.net-identity asp.net-core

23
推荐指数
2
解决办法
3335
查看次数

ASP.NET 5 Identity 3用户在一段时间后退出

我使用RC1位和外部(Google)身份验证,没有Identity.EntityFramework.

在登录期间,我设置了"记住我"标志.

登录用户幸存浏览器重启(我看到cookie设置为14天后过期)和网站重启.

但是经过一段时间不活动(大约15分钟)后,无论浏览器/站点是否重​​启,刷新页面都会导致退出,日志说:

info: Microsoft.AspNet.Authentication.Cookies.CookieAuthenticationMiddleware:
    AuthenticationScheme: Microsoft.AspNet.Identity.Application signed out.
    AuthenticationScheme: Microsoft.AspNet.Identity.External signed out.
    AuthenticationScheme: Microsoft.AspNet.Identity.TwoFactorUserId signed out.
Run Code Online (Sandbox Code Playgroud)

这看起来像以前的ASP中的"会话",但我不在这里使用任何会话.

这是我的本地开发者机器,没有IIS,直接将Kestrel连接到5000端口,所以这不是数据保护问题

为什么用户被迫退出?

更新:我的Startup.cs文件:

public void ConfigureServices(IServiceCollection services) 
{
    ....
    var identityBuilder = services
        .AddIdentity<User, UserRole>(options =>
        {
            options.User.AllowedUserNameCharacters = null;
            options.Cookies.ApplicationCookie.LoginPath = "/user/login";
            options.Cookies.ApplicationCookie.LogoutPath = "/user/logout";
        });
    identityBuilder.Services
        .AddScoped<IUserStore<User>, SportCmsDb>(serviceProvider => serviceProvider.GetService<SportCmsDb>())
        .AddScoped<IRoleStore<UserRole>, SportCmsDb>(serviceProvider => serviceProvider.GetService<SportCmsDb>());
    identityBuilder
        .AddDefaultTokenProviders();
    ....

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{
    ....
    app.UseIdentity();
    app.UseGoogleAuthentication(options =>
    {
        options.ClientId = Configuration["OAuth:Google:ClientId"];
        options.ClientSecret …
Run Code Online (Sandbox Code Playgroud)

asp.net-identity-3 asp.net-core

2
推荐指数
1
解决办法
1058
查看次数