ASP.NET TicketDataFormat.Unprotect(cookieValue)返回null

时间:2017-07-25 15:33:29

标签: .net authentication encryption cookies asp.net-core

我正在尝试解密由另一个.NET 4.6.2 MVC应用程序设置的身份验证cookie,该应用程序是在Startup.Auth中使用以下内容创建的:

def removecom(value):
value=value.replace(',','.')

Umsatz['Betrag()']=Umsatz['Betrag()'].apply(lambda value: removecom(value))

Umsatz['Betrag()']

我正在尝试解密它:

            TicketDataFormat = new AspNetTicketDataFormat(
                new DataProtectorShim(
                    DataProtectionProvider.Create(new DirectoryInfo(@"C:\Keys\"))
                        .CreateProtector("blah")))

在我开始进行一些身份自定义之前,这工作正常。我创建了一个新的IdentityUser,它继承自IdentityUser,因此我可以添加一些额外的字段。现在可能没有读到身份吗?

由于

1 个答案:

答案 0 :(得分:1)

我通过大量的游戏来解决这个问题。

原来是以下问题的组合:

  • 提供给DataProtectionProvider CreateProtector方法的目的和子目的字符串未设置为" Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware", " Cookies"," v2"。我只是将它们视为阅读文档时的另一个字符串值,我认为这可能只是任何字符串,只要它们在需要共享cookie的应用程序之间是相同的。
  • 其中一个应用程序使用的是Microsoft.AspNetCore.DataProtection NuGet包的1.1.2版,而另一个使用的是版本1.1.1。我升级了1.1.1 - > 1.1.2。

现在一切似乎都很好。因此,在一个不在另一个应用程序中的自定义用户身份无关紧要,仍然可以理解cookie并提取ClaimsIdentity。