当前位置: 首页 > 知识库问答 >
问题:

具有个人用户身份验证的品牌新模板网站的身份防伪例外

邴俊民
2023-03-14

我使用MVC5 web模板创建了一个具有个人用户身份验证的新站点,当我尝试运行它时,我得到:

系统InvalidOperationException:“类型的声明”http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier“或者”http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider“在所提供的索赔中不存在。要使用基于声明的身份验证启用防伪令牌支持,请验证配置的声明提供程序是否在其生成的ClaimSideEntity实例上提供了这两个声明。如果配置的声明提供程序使用不同的声明类型作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig对其进行配置。UniqueClaimTypeIdentifier.”

自代码生成以来,我没有对代码进行任何更改。这可能是什么原因造成的?

共有1个答案

解高昂
2023-03-14

所以这个问题的答案是清除网站的cookies。

据我所知,出现这个问题是因为我同时还在开发另一个MVC5应用程序,而其中一个应用程序使用的是另一组身份验证代码(基于Active Directory)。

通过注释@Html,我发现这两个应用程序相互干扰。AntiForgeryToken()行,然后加载主页,但没有错误。然后我看到我已经登录了,尽管这是应用程序的第一次运行。

清除cookie解决了这个问题,但我绝对没有想到两个不同的MVC应用程序会共享cookie。然而,这实际上是预期的行为,因为默认情况下,ASP. NET Cookie身份验证将创建一个名为的cookie。AspNet.适用于每个应用程序的Cookie。如果您检查ASP网站的cookie,您可以看到以下内容:

这实际上很容易更改,只需在Startup中修改代码即可。配置要设置特定的CookieName:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "ApplicationCookie",
            LoginPath = new PathString("/Account/Login"),
            CookieName = "yourCookieName"
        });
    }
}

然后,清除站点的Cookie,再次运行它,您应该会看到Cookie现在已被重命名。

 类似资料:
  • 个人身份验证 (PIV) Yubikey 支持个人身份验证 (PIV 和 FIPS 201) 智能卡接口 (NIST SP 800-73)。根据智能卡上存储的私钥,通过 PKCS#11 一类的通用接口进行RSA 或者 ESS 的签名、加密、解密操作。

  • 我坚持使用spring ldaptemplate身份验证方法返回零计数,同时使用group字符串,下面的字符串。 cn=jirra-acdolite-dg,ou=jira安全组,ou=apps安全组,ou=Security组,ou=global,ou=bt,dc=barcadero,dc=com 如下所示的错误消息。 2018年2月15日12:32:52上午org.springframework.

  • 问题内容: 我一直在玩漂亮的汤和解析网页几天。在编写的所有脚本中,我一直使用一行代码作为救星。代码行是: 但是… 我想对(OPEN A URL WITH AUTHENTICATION)做同样的事情: 我无法打开网址并阅读需要身份验证的网页。我如何实现这样的目标: 问题答案: 看看官方文档中的如何使用urllib软件包获取Internet资源:

  • null 我的自定义rest筛选器: 上面的内容实际上会导致应用程序启动时出现一个错误:有人能告诉我如何最好地执行此操作吗?pre_auth筛选器是执行此操作的最好方法吗? 编辑 使用Spring-security实现解决方案 希望它能帮助其他人…

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我有一个LaravelAPI(实际上是LumenAPI)服务于VueJS前端。Vue应用程序允许用户登录到谷歌。然后将Google令牌发送回Lumen API,后者使用Google验证令牌,然后验证电子邮件地址是否为有效用户。然后它生成一个令牌,与用户一起存储在数据库中,并返回用户对象。 我没有使用Passport或jwt auth之类的东西。那么现在,我如何使用默认的Auth中间件来验证(现在已