Dev*_*evT 3 c# asp.net authentication
在我的login.aspx页面中,我使用了<asp:Login>控件,如果User.Identity.IsAuthenticated = true,我需要指定一些值.
正如提到这里当用户提交他或她的登录信息,登录控制第一引发LoggingIn事件,然后Authenticate事件,最后的loggedIn事件.
所以我检查了这个值如下:
protected void Login_LoggedIn(object sender, EventArgs e)
{
int x = 0;
if (User.Identity.IsAuthenticated)
x = 5;
}
Run Code Online (Sandbox Code Playgroud)
但是这个值总是假的.我的问题如下:
用户输入其凭据并单击"登录"按钮.发生回发.
1.传入请求进入ASP.NET管道.
2. Application_Authenticate事件触发.此时,ASP.NET运行时不知道用户是谁,因此User.Identity.IsAuthenticated = false
3.登录页面的生命周期,
4.由于您将e.Authenticated设置为true,因此将触发Login控件的Authenticate事件并创建表单身份验证票证.
5.登录控件的LoggedIn事件触发.此时,我们仍然在同一个请求,所以User.Identity.IsAuthenticated仍然是假的!
更多信息,请阅读此链接:http: //forums.asp.net/t/1177741.aspx?User + Identity + IsAuthenticated+remains+false+why+
| 归档时间: |
|
| 查看次数: |
3827 次 |
| 最近记录: |