c# - AspNetCore 2.0 声明总是空的

标签 c# authentication claims-based-identity asp.net-core-mvc-2.0

我正在将 DotNet 4.5 MVC/WebAPI 应用程序转换为 AspNetCore 2.0,但我在让 Cookie 身份验证再次工作时遇到了一些问题。当我设置 cookie 并尝试访问安全方法时,我无法到达那里。当我进入匿名方法并检查用户对象时,它是空的——没有身份验证类型、没有声明等。

我已尽我所能关注这篇文章:https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie?tabs=aspnetcore2x .我没有使用身份。

我在startup.cs ConfigureServices中的代码如下:

  services.AddAuthentication("ACE_AUTH")                    
                    .AddCookie("ACE_AUTH",  options =>
                    {
                        options.AccessDeniedPath = "/Home/Index/";
                        options.LoginPath = "/Home/Index/";
                    });

我在Configure方法中的代码:

app.UseAuthentication();

调用时主体已完全填充。我在哪里设置我的 cookie:

 await HttpContext.SignInAsync("ACE_AUTH", samlData.Principal);

在尝试对用户进行身份验证时,我尝试过的任何事情都没有导致我的声明出现。

最佳答案

对于不阅读评论的人(我自己几乎阅读了评论):

Joey:“为我解决问题的方法是将 app.UseAuthentication 移动到 app.UseMvc 之上。它确实在文档中说明了这一点,但它隐藏得很好。”

...这行得通...为什么当您之后执行此操作时它不会抛出异常在我身后。

关于c# - AspNetCore 2.0 声明总是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924240/

相关文章:

c# - DbProviderFactories 中未列出的 Oracle 数据提供程序 (ODP.NET)

c# - 我可以将对象列表存储到SQLite而不是拆分列表并单独添加对象吗?

c# - 调用 SOAP 服务时参数作为 null 传递

asp.net-mvc - 返回引用页面

security - Symfony2 登录和安全

oauth - 声明与 OAuth 之间的区别

c# - 使用户控件内的标签对于所有鼠标事件都可单击?

用于登录网页的 bash 脚本

asp.net-mvc-4 - MVC4 - 具有标准授权属性的基于声明的授权

asp.net - 没有角色的声明?