我正在将旧的dnx beta4 MVC应用程序转换为新的ASP.NET Core 1.0。我有一个简单的基于cookie声明的身份验证与自定义用户查找(没有EF),这是完美的。
幸运的是,他们在那个区域没有太大的变化,所以在这里我做了很小的改变,我设法转换它。当使用F5(而不是IIS)运行站点时,一切似乎都有效。 User.Identity.IsAutheticated
属性为true,等等。
但是当我使用IIS运行应用程序时,登录部分似乎有效,但在此之后User.Identity.IsAutheticated
为假。
要将我的应用程序发布到IIS,我按照文档(https://docs.asp.net/en/latest/publishing/iis.html)
中的步骤进行操作有什么想法可能是什么问题?
修改
为了更清楚,我正在使用Identity进行身份验证。我没有创建自定义Cookie,我使用CookieAuthencationMiddleware
。我调用signInManager.PasswordSignInAsync
来验证用户,我使用IUserClaimsPrincipalFactory
的实现来创建ClaimsPrincipal
对象。我有自定义的简单IUserStore
实现来获取用户(没有FE)等。它在IIS外部运行时非常有效
答案 0 :(得分:0)
您的身份验证可能是问题所在。如果您正在编写自己的cookie并阅读并验证它,那么您需要转到身份验证中间件,然后在HttpContext身份验证功能上使用SignInAsync
和SignoutAsync
。
我建议切换到使用内置的cookie中间件,您可以非常愉快地使用它,而不依赖于EF,身份或其他任何内容。
那是fully documented而我的authorization workshop使用它,所以有大量的示例代码。