Членство в ASP.NET. Войти в систему - PullRequest
3 голосов
/ 23 октября 2011

Я определил имя пользователя в и добавил его к роли.

Теперь я использую этот код, чтобы проверить, действительно ли пользователь:

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 = "";
}

После этого я хочу проверить на странице Products.aspx, есть ли пользователь в роли или нет. Я написал этот код, но он возвращает мое локальное имя пользователя Windows:

Context.User.Identity.Name

Я думаю, что должен возвращает зарегистрированного пользователя.

После этого я проверю этот код:

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

        }

<ч /> Что не так с моим кодом? Как я могу проверить это, если вошедший в систему пользователь играет определенную роль?

Ответы [ 2 ]

4 голосов
/ 23 октября 2011

Вы устанавливаете authentication-mode на Forms?

Web.config:

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

Также вы должны использовать Page.User.Identity.Name вместо Context.User.Identity.Name.

2 голосов
/ 23 октября 2011

Полагаю, вам просто нужно использовать Page.User.Identity.Name вместо Context.

Дайте мне знать, если это произойдет, я уже перепутал =)

...