我在站点登录期间收到此错误。我该如何解决此问题。

最佳答案

显然,与当前请求关联的主要对象是 GenericIdentity 而不是 FormsIdentity 。在这两者之间进行转换是不可能的。

您应该仔细检查您的应用程序堆栈,以了解身份管理模块以及代码中为当前请求设置身份的所有其他可能位置。如果您能够确定设置 GenericIdentity 的罪魁祸首 - 您已经完成了,您可以重写/重新设计这个特定位置。

我的猜测是当用户 未通过 身份验证时会出现此问题。运行时为当前请求创建 GenericIdentity 并将 IsAuthenticated 设置为 false 。我将代码重写为:

 if ( HttpContext.Current.User != null && HttpContext.Current.User.Identity is FormsIdentity )
 {
    // your code follows
 }
 else
 {
    // the user is not yet authenticated and
    // there is no Forms Identity for current request
 }

关于c# - 无法将 'System.Security.Principal.GenericIdentity' 类型的对象转换为 'System.Web.Security.FormsIdentity' 类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20400855/

10-10 17:44