ASP.Net成员身份和表单身份验证:User.Identity.IsAuthenticated为true,但GetMembership()和Identity.Name返回null

ASP.Net成员身份和表单身份验证:User.Identity.IsAuthenticated为true,但GetMembership()和Identity.Name返回null,asp.net,asp.net-membership,forms-authentication,Asp.net,Asp.net Membership,Forms Authentication,我正在使用FormsAuth的ASP.Net成员资格,遇到了一个奇怪的问题。下面是我设置身份验证cookie的代码: FormsAuthentication.SetAuthCookie(emailAddress, true); string returnUrl = Session["returnUrl"] + ""; returnUrl变量被传递给页面HTML上的元刷新标记,因此重定向是客户端的。我这样做是为了确保在重定向之前在浏览器中设置了身份验证cookie returnUrl是为调试目的

我正在使用FormsAuth的ASP.Net成员资格,遇到了一个奇怪的问题。下面是我设置身份验证cookie的代码:

FormsAuthentication.SetAuthCookie(emailAddress, true);
string returnUrl = Session["returnUrl"] + "";
returnUrl变量被传递给页面HTML上的元刷新标记,因此重定向是客户端的。我这样做是为了确保在重定向之前在浏览器中设置了身份验证cookie

returnUrl是为调试目的而设置的页面。它的ASPX中有以下代码

<%
    var user = System.Web.Security.Membership.GetUser();
 %>
 <%
    if (user != null)
   {%>
Name: <%=user.UserName%>
<%}
   else
   {%>
       No user found in session
    <%} %>
<br />
User.Identity.IsAuthenticated: <%=User.Identity.IsAuthenticated%><br />

User.Identity.Name: <%=User.Identity.Name%><br />

姓名:
在会话中找不到用户

User.Identity.i已验证:
User.Identity.Name:
当我访问页面时,IsAuthenticated为true,但是user和Indentity.Name值为null。我验证并设置了auth cookie;那么为什么用户信息不可用呢


非常感谢任何建设性的意见。

事实证明,这完全是我个人的意见。我没有注意到的是emailAddress字符串为空;并已将用户名设置为空的身份验证cookie;导致上述问题。

您是否将用户的电子邮件地址存储为用户名?auth cookie将电子邮件设置为用户名,这是您想要的吗?这是正确的;电子邮件地址是设计的会员用户名。