C# 使用FormsAuthentication

C# 使用FormsAuthentication,c#,.net,asp.net,authentication,razor,C#,.net,Asp.net,Authentication,Razor,我有一个剃须刀网站,我与WebMatrix完全登录/注册和管理员角色。并且要求管理员能够“作为现有用户登录”,以便能够添加、编辑、取消和/或确认他作为特定用户登录的新订单 我知道这不是最常见的方法,但我已经看到了很多。我目前拥有一个域名转售业务,我的供应商使用这种类型的功能,允许我以用户身份登录他们的帐户等 所以,有人告诉我,在C#中,FormsAuthentication将有助于实现这一点。所以我查了一下: 这让我想问: 什么 而且 “用户名”是指用户注册时创建的电子邮件地址?或者它们是指用

我有一个剃须刀网站,我与WebMatrix完全登录/注册和管理员角色。并且要求管理员能够“作为现有用户登录”,以便能够添加、编辑、取消和/或确认他作为特定用户登录的新订单

我知道这不是最常见的方法,但我已经看到了很多。我目前拥有一个域名转售业务,我的供应商使用这种类型的功能,允许我以用户身份登录他们的帐户等

所以,有人告诉我,在C#中,FormsAuthentication将有助于实现这一点。所以我查了一下:

这让我想问:

什么

而且

“用户名”是指用户注册时创建的电子邮件地址?或者它们是指用户名,即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>
@{
if(Roles.IsUserInRole(“管理员”))
{
SetAuthCookie(
“客户Susername在这里,
真的
);
}
其他的
{
响应。重定向(“~/Account/SignIn”);
}
}
您好,管理员,您当前以[在此处插入客户端名称]的身份登录

那么,它真的像这样简单吗

是的,就是这么简单。实际上,要使其生效,您需要重定向,因为页面将使用请求cookie,它仍然指示管理员:

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

false//Woot!非常感谢@Darin-非常有用的文章:)