User.Identity.IsAuthenticated false,直到从登录页面重定向

Fer*_*min 6 asp.net-membership

我有一个使用ASP.NET成员资格的登录页面.一旦我验证了用户,我需要在Session变量中存储一些关于它们的细节.问题是

Membership.GetUser() == null and 
User.Identity.IsAuthenticated == false 
Run Code Online (Sandbox Code Playgroud)

直到我离开页面.

我试过用

FormsAuthentication.Authenticate(tbUsername.Text, tbPassword.Text);
Run Code Online (Sandbox Code Playgroud)

并检查User.Identity.IsAuthenticated但它返回false,直到我到达另一页.有什么建议?

Jon*_*and 4

好吧,FormsAuthentication.Authenticate()返回一个boolean,这样你就知道身份验证是否成功。如果是,您可以将用户的用户名传递给Membership.GetUser()并访问返回的MembershipUser对象以获取您需要的任何数据并将其存储在会话中。

if (FormsAuthentication.Authenticate(tbUsername.Text, tbUsername.Text)) {
   MembershipUser user = Membership.GetUser(tbUsername.Text);
   // Set session variables here.
   FormsAuthentication.RedirectFromLoginPage(tbUsername.Text, rememberMe.Checked);
}
Run Code Online (Sandbox Code Playgroud)