![](/img/trans.png)
[英]OWIN authentication succeeds but User.Identity.IsAuthenticated is false
[英]How to set value to User.Identity.IsAuthenticated as false in Forms Authentication
我有一种情况,我想输入匿名用户的详细信息。 所以我在Profile中为他们创建了一个用户ID。 当我设置用户详细信息时
FormsAuthentication.SetAuthCookie(username, true);
我希望User.Identity.Name与用户有关的详细信息与用户名,但User.Identity.IsAuthenticated为false。 现在我认为它是真的。 我想在特定登录后才将其设置为true。
FormsIdentity类是硬连线的,总是返回true。 所以这不能改变。 只要名称不为空,即使GenericIdentity也会返回true。
解决方法是创建自己的IIdentity实现,并替换Global.asax中Application_PostAuthenticateRequest事件中的表单标识。 这是一个经过验证的安全解决方案。
另外请考虑您是否真的想要这样做。 优秀的做法是,未经身份验证的用户是匿名用户,他们没有名字,并且内置身份类的工作方式非常复杂。
遗憾的是,您无法将User.Identity.IsAuthenticated修改为false。 您可以创建自己的cookie,也可以将此用户的字符串变量作为Dictionary分配给会话。 通过这种方式,您可以修改该值并手动销毁特定方案的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.