当我输入以下代码时:
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
the
@Html.AntiForgeryToken()
部分抛出以下异常:
提供的类型“System.Web.Security.FormsIdentity”的身份标记为 IsAuthenticated = true,但没有 Name 值。默认情况下,防伪系统要求所有经过身份验证的身份都具有唯一的名称。如果无法为此身份提供唯一的名称,请考虑将静态属性 AntiForgeryConfig.AdditionalDataProvider 设置为可以为当前用户提供某种形式的唯一标识符的类型的实例。
我检查了很多例子并尝试在网上搜索,但我找不到任何解释。我想知道为什么这个错误发生在我身上?以及如何解决使用防伪。
它告诉您它将无法工作,因为尽管已登录,Membership.GetUser().UserName
未提供可用于散列的名称。
所以你真正的问题是,“我的登录用户没有用户名?”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)