首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FormsAuthentication

使用FormsAuthentication
EN

Stack Overflow用户
提问于 2011-07-16 18:34:47
回答 1查看 766关注 0票数 1

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

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

所以,有人告诉我,在C#中,FormsAuthentication可以很好地解决这个问题。所以我检查了一下:

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

这让我不禁要问:

什么?

还有..。

所谓“用户名”,指的是该用户注册时创建的电子邮件地址?或者它们指的是UserId,它是一个整型变量?

而且,真的有这么简单吗?

代码语言:javascript
复制
@{
  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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-16 18:39:30

和,它真的像这么简单吗?

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

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

此外,您可以在会话中存储一些信息,表明这是一个管理员,作为一个普通用户(如果您需要知道它),而不是普通用户。

您还可以查看following article以了解更高级的模拟场景。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6716793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档