2

我是 mvc 4 的新手,不能完全理解简单的成员资格是如何工作的。完成所有配置后,我将此代码放入 AccountController 以查看它是如何工作的以及它是否正常工作

string UserName1 = WebSecurity.CurrentUserName;
bool LoginResult= WebSecurity.Login("admin", "111111");
string UserName2 = WebSecurity.CurrentUserName;
WebSecurity.Logout();

当我运行调试器时,我看到一切都完成了

UserName1 = "" 
LoginResult = true 
UserName2 = ""

一切都很好,除了 UserName2。为什么它是空的?登录是 susss... 我在 WebSecurity 和 WebSecurity.IsAuthentificated 上看不到 UserID 为什么登录成功但 WebSecurity 根本不显示?

4

1 回答 1

1

登录不会像您认为的那样做。它不会立即设置当前用户,而是在用户的 Web 浏览器上设置一个 cookie,并且在下一页刷新时,asp.net 将识别该 cookie 并向他们提供经过身份验证的请求。

这并不特定于简单的成员资格,这就是所有身份验证在 asp.net 中的工作方式。一旦通过身份验证,必须刷新页面才能识别登录。

于 2012-12-08T08:51:36.660 回答