gpt4 book ai didi

c# - ASP.Net MVC 上的防伪系统

转载 作者:可可西里 更新时间:2023-11-01 09:06:23 29 4
gpt4 key购买 nike

当我输入以下代码时:

 @using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}

@Html.AntiForgeryToken()

部分抛出以下异常:

所提供的“System.Web.Security.FormsIdentity”类型的标识被标记为 IsAuthenticated = true 但没有 Name 值。默认情况下,防伪系统要求所有经过身份验证的身份都具有唯一的名称。如果无法为此身份提供唯一名称,请考虑将静态属性 AntiForgeryConfig.AdditionalDataProvider 设置为可以为当前用户提供某种形式的唯一标识符的类型的实例。

我检查了很多例子并试图在网上搜索,但找不到任何解释。我想知道为什么这个错误会发生在我身上?以及如何解决使用防伪。

最佳答案

它告诉您它不会工作,因为尽管已登录,Membership.GetUser().UserName 并未提供可用于散列的名称。

所以您真正的问题是,“为什么我的登录用户没有用户名?”

关于c# - ASP.Net MVC 上的防伪系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12796319/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com