用户登录(Asp.net)后,LoginName不显示,Loginstatus自动更改为Login



我创建了3个文件夹来管理ASP中的用户。NET和我还创建了3个角色,分别是officer, user和admin。现在基于下面的代码用户可以重定向到特定的页面,但现在的问题是,我不能看到登录后使用loginNameLoginStatus自动从注销更改为登录的用户名。用户似乎没有登录,要求重新登录。(有趣的问题…)

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
    if (Membership.ValidateUser(Login1.UserName, Login1.Password))
    {
        //Perform setting cookie information
        e.Authenticated = true;
        if (Roles.IsUserInRole(Login1.UserName, "r_admin"))
        {
            Response.Redirect("admin/default.aspx");
        }
        if (Roles.IsUserInRole(Login1.UserName, "r_officer"))
        {
            Response.Redirect("~/officer/default.aspx");
        }
        if (Roles.IsUserInRole(Login1.UserName, "r_user"))
        {
            Response.Redirect("~/user/default.aspx");
        }

    }

尝试移动响应。将指令重定向到LoggedIn事件,而不是Authenticate事件。

在您的登录控件上添加Loggedin事件,像这样:

  <asp:Login id="Login1" runat="server" OnLoggedIn="Login1_OnLoggedIn"></asp:Login>

和后面的代码:

protecetd void Login1_OnLoggedIn(object sender, EventArgs e)
{
     if (Roles.IsUserInRole(Login1.UserName, "r_admin"))
    {
        Response.Redirect("admin/default.aspx");
    }
    if (Roles.IsUserInRole(Login1.UserName, "r_officer"))
    {
        Response.Redirect("~/officer/default.aspx");
    }
    if (Roles.IsUserInRole(Login1.UserName, "r_user"))
    {
        Response.Redirect("~/user/default.aspx");
    }
}
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.login.loggedin.aspx

相关内容

  • 没有找到相关文章

最新更新