我有一种情况,我也想输入匿名用户的详细信息。所以我在 Profile 中为他们创建了一个用户 ID。当我设置用户详细信息时
FormsAuthentication.SetAuthCookie(username, true);
我想要与 User.Identity.Name 和用户名有关的用户的详细信息,但 User.Identity.IsAuthenticated 为 false。现在我明白了。我想仅在特定登录后将其设置为 true。
最佳答案
FormsIdentity 类被硬连接为始终返回 true。所以这是无法改变的。只要名称不为空,即使是 GenericIdentity 也会返回 true。
一种解决方法是创建您自己的 IIdentity 实现,并替换 Global.asax 中 Application_PostAuthenticateRequest 事件中的表单标识。这是一个经过验证且安全的解决方案。
另外请考虑您是否真的想这样做。未经身份验证的用户是匿名的,他们没有名字,这是一个很好的做法,并且非常详细地说明了为什么内置身份类会以他们的方式工作。
关于c# - 如何在表单例份验证中将 User.Identity.IsAuthenticated 的值设置为 false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20265954/