ASP.获得登录用户

本文关键字:用户 登录 ASP | 更新日期: 2023-09-27 18:12:00

我已经定义了一个用户名,并将其添加到角色中。

现在,我用下面的代码来检查用户是否有效:

if (Membership.ValidateUser(txtUsername.Text, txtPassword.Text)) {
    FormsAuthentication.SetAuthCookie(txtUsername.Text, false);
    if (Roles.GetRolesForUser(txtUsername.Text).Any(role => role == "Admin")) {
        Page.Response.Redirect(ResolveUrl("~/Admin/Products.aspx"));
    }
    txtUsername.Text = "";
}

之后,我想检查产品。Aspx页面显示用户是否在角色中。我写了这段代码,但它返回我的本地Windows用户名:

Context.User.Identity.Name

我认为应该返回登录用户。

之后,我将使用以下代码进行检查:

  if (!Context.User.IsInRole("Admin"))
        {
            Response.Redirect(ResolveUrl("~/Default.aspx"));
        }


我的代码有什么问题?如果登录用户处于特定角色,我如何检查这一点?

ASP.获得登录用户

是否将authentication-mode设置为Forms ?

web . config:

<authentication mode="Forms">
</authentication>

你应该用Page.User.Identity.Name代替Context.User.Identity.Name

我相信你只需要使用Page.User.Identity.Name,而不是Context

让我知道,如果这样做了,我以前犯过这个错误=)