.NET Core 3.1和Windows身份验证会杀死会话变量

潘兴

每当我在.NET Core 3.1应用程序上启用Windows身份验证时,我的会话变量似乎不再在请求中持久存在。每当我关闭Windows身份验证时,Session变量都会再次起作用。

我在Startup.cs的ConfigureServices()部分中启用了Session变量:

public void ConfigureServices(IServiceCollection services)
{
//......
    services.AddSession(delegate (SessionOptions options)
    {
        options.IdleTimeout = TimeSpan.FromSeconds(1800);
        options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
        options.Cookie.SameSite = SameSiteMode.Strict;
        options.Cookie.HttpOnly = true;
        options.Cookie.IsEssential = true;
    });
//......
} 

我使用web.config启用了Windows身份验证:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <remove name="aspNetCore" />
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" hostingModel="InProcess" disableStartUpErrorPage="false">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
          <anonymousAuthentication enabled="false" />
        </authentication>
      </security>      
    </system.webServer>
  </location>
</configuration>

我在一个Razor页面(SET.cshtml)中设置了这样的会话变量

<div>
    @Context.Session.SetString("testvar", "123");
</div>

在另一个Razor页面(GET.cshtml)上,我检查该变量是否持久:

<div>
    @Context.Session.GetString("testvar")
</div>

当在web.config中启用Windows身份验证时,从SET.cshtml到GET.cshtml时,会话变量“ testvar”不会保留(GET.cshtml应该显示“ 123”,但不会显示)。当我禁用Windows身份验证时,它将再次开始工作(GET.cshtml正确显示“ 123”)。

可能是什么问题呢?

潘兴

我发现了问题。我没有在Startup.cs中调用“ app.UseAuthorization()”。

在.NET Core中启用Windows身份验证时,需要在Startup.cs的Configure()方法中调用app.UseAuthorization(),以便会话变量在请求中持久存在:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.Net Core 身份验证和用户会话

来自分类Dev

如何在ASP.NET Core 3上同时使用Azure AD身份验证和身份?

来自分类Dev

.net Core 3身份'AccessFailedCount'不增加

来自分类Dev

.NET Core 3 Azure AD身份验证的自定义角色

来自分类Dev

.NET Standard和.NET Core 3.x或ASP.NET Core 3.x

来自分类Dev

.NET Core API中的Windows身份验证自动登录

来自分类Dev

IIS 8中的.Net Core和Windows身份验证失败

来自分类Dev

.NET Core令牌身份验证-主体

来自分类Dev

.Net Core HttpClient摘要身份验证

来自分类Dev

共享cookie .net Core 3和Asp.net

来自分类Dev

我可以在ASP.NET Core 3中结合两种身份验证方案中的身份吗?

来自分类Dev

.NET Core中可以通过用户名和签名进行身份验证的Microsoft.Web.Services3的替代品是什么?

来自分类Dev

返回时,ASP .NET Core Cookie身份验证过期从时间戳更改为“会话”

来自分类Dev

在.Net Core 3和blazor中捆绑CSS和js

来自分类Dev

如何使用WebListener和Windows身份验证将ASP.NET Core应用程序托管在IIS下?

来自分类Dev

ASP.NET Core中的Windows身份验证:手动登录与自动Intranet登录和可用组

来自分类Dev

如何使用WebListener和Windows身份验证将ASP.NET Core应用程序托管在IIS下?

来自分类Dev

Swagger和.Net Core 3集成

来自分类Dev

通过SPA和.NET Core 3识别角色

来自分类Dev

ASP.NET Core 3 ActionFilter和Viewbag

来自分类Dev

使用运行Identity Server 4的ASP.NET CORE 3身份验证服务器对ASP.NET MVC 5应用(目标.net 4.5)进行身份验证

来自分类Dev

在.Net Core 3.0项目中正确设置ASP.Net Core授权和身份验证

来自分类Dev

SHA1(c#)-与.Net 3和.Net Core不同的结果

来自分类常见问题

.NET Core身份服务器4身份验证VS身份身份验证

来自分类Dev

将身份服务器身份验证添加到.NET Core 3应用失败,并显示“未指定密钥类型”。

来自分类Dev

ASP.NET Core中的承载令牌身份验证

来自分类Dev

ASP.NET Core中的基本身份验证

来自分类Dev

ASP.Net Core SAML身份验证

来自分类Dev

.NET Core在AzuerAD身份验证后添加声明

Related 相关文章

  1. 1

    .Net Core 身份验证和用户会话

  2. 2

    如何在ASP.NET Core 3上同时使用Azure AD身份验证和身份?

  3. 3

    .net Core 3身份'AccessFailedCount'不增加

  4. 4

    .NET Core 3 Azure AD身份验证的自定义角色

  5. 5

    .NET Standard和.NET Core 3.x或ASP.NET Core 3.x

  6. 6

    .NET Core API中的Windows身份验证自动登录

  7. 7

    IIS 8中的.Net Core和Windows身份验证失败

  8. 8

    .NET Core令牌身份验证-主体

  9. 9

    .Net Core HttpClient摘要身份验证

  10. 10

    共享cookie .net Core 3和Asp.net

  11. 11

    我可以在ASP.NET Core 3中结合两种身份验证方案中的身份吗?

  12. 12

    .NET Core中可以通过用户名和签名进行身份验证的Microsoft.Web.Services3的替代品是什么?

  13. 13

    返回时,ASP .NET Core Cookie身份验证过期从时间戳更改为“会话”

  14. 14

    在.Net Core 3和blazor中捆绑CSS和js

  15. 15

    如何使用WebListener和Windows身份验证将ASP.NET Core应用程序托管在IIS下?

  16. 16

    ASP.NET Core中的Windows身份验证:手动登录与自动Intranet登录和可用组

  17. 17

    如何使用WebListener和Windows身份验证将ASP.NET Core应用程序托管在IIS下?

  18. 18

    Swagger和.Net Core 3集成

  19. 19

    通过SPA和.NET Core 3识别角色

  20. 20

    ASP.NET Core 3 ActionFilter和Viewbag

  21. 21

    使用运行Identity Server 4的ASP.NET CORE 3身份验证服务器对ASP.NET MVC 5应用(目标.net 4.5)进行身份验证

  22. 22

    在.Net Core 3.0项目中正确设置ASP.Net Core授权和身份验证

  23. 23

    SHA1(c#)-与.Net 3和.Net Core不同的结果

  24. 24

    .NET Core身份服务器4身份验证VS身份身份验证

  25. 25

    将身份服务器身份验证添加到.NET Core 3应用失败,并显示“未指定密钥类型”。

  26. 26

    ASP.NET Core中的承载令牌身份验证

  27. 27

    ASP.NET Core中的基本身份验证

  28. 28

    ASP.Net Core SAML身份验证

  29. 29

    .NET Core在AzuerAD身份验证后添加声明

热门标签

归档