2

我有一个带有 onloggedin 事件处理程序的 .Net 登录控件。

onloggedin="Login2_LoggedIn"

但是 User.Identity 始终为空。

 protected void Login2_LoggedIn(object sender, EventArgs e)
{
    // Is User is Admin
    if (Roles.IsUserInRole(User.Identity.Name, "admin"))

它应该在这一点上可用吗? 或者我应该从对象发送者或 EventArgs e 获取用户名?

4

1 回答 1

8

Page.User 在验证后页面回发之前不可用,因此在托管登录控件的页面上为空。但是,您仍然可以使用登录控件的 UserName 属性调用该方法。这在 LoggedIn 事件处理程序中是安全的,因为此时用户已通过身份验证。

if (Roles.IsUserInRole(Login2.UserName, "admin"))
...
于 2009-12-30T21:12:53.180 回答