Использование FormsAuthentication - PullRequest
1 голос
/ 16 июля 2011

У меня есть сайт Razor, который я сделал с полным входом в систему / регистрацией и администратором с помощью WebMatrix. Кроме того, администратору необходимо иметь возможность «Войти в систему как существующий пользователь», чтобы иметь возможность добавлять, редактировать, отменять и подтверждать новые заказы для конкретного пользователя, для которого он зарегистрирован как.

Я знаю, что это не самый распространенный способ приблизиться к этому, но я видел, что это было сделано много. В настоящее время у меня есть компания по перепродаже доменов, и мой поставщик использует этот тип функций, где он позволяет мне входить в систему как пользователь для зачисления на их счет ETC ..

Итак, мне сказали, что FormsAuthentication хорошо сработает для этого в C #. Итак, я проверил:

http://msdn.microsoft.com/en-us/library/twk5762b.aspx

Что заставляет меня спросить:

Что?

И ...

Под "именем пользователя" они подразумевают адрес электронной почты, который был создан при регистрации этого пользователя? Или они имеют в виду UserId, который является INT?

И действительно ли это так же просто, как сделать это?:

@{
  if(Roles.IsUserInRole("Administrator"))
  {
    SetAuthCookie(
      "ClientsUserNameHere,
      true
    );
  }
  else
  {
    Response.Redirect("~/Account/SignIn");
  }
}
<DOCTYPE! HTML>
<html>
  <head></head>
  <body>
    <p>Hello, Administrator, you are currently Signed In as [insert client name here].</p>
  </body>
</html>

1 Ответ

3 голосов
/ 16 июля 2011

И действительно ли это так же просто, как сделать это?

Да, это действительно так просто. Ну, на самом деле для того, чтобы это вступило в силу, вам нужно перенаправить, потому что страница будет использовать куки-файл запроса, который по-прежнему указывает администратора:

if(Roles.IsUserInRole("Administrator")) {
    FormsAuthentication.SetAuthCookie(
        "ClientsUserNameHere",
        false // <-- set to true only if you want persistent cookies
    );
    Response.Redirect("~/Home/SomeUserPage");
}

Кроме того, вы можете сохранить некоторую информацию в сеансе, указывая, что это администратор, действующий как обычный пользователь (если вам когда-либо требовалось это знать), а не обычный пользователь.

Вы также можете взглянуть на следующую статью для более продвинутого сценария олицетворения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...