我有一个剃刀网站,我与WebMatrix的完全登录/注册和管理员角色。并且要求管理员能够以现有用户的身份登录,以便能够添加、编辑、取消和/或确认他作为登录的那个特定用户的新订单。
我知道这不是最常见的方法,但我已经看到它做了很多事情。我目前拥有一个域名转售业务,我的供应商使用这种类型的功能,它让我作为一个用户登录到他们的帐户等。
所以,有人告诉我,在C#中,FormsAuthentication可以很好地解决这个问题。所以我检查了一下:
http://msdn.microsoft.com/en-us/library/twk5762b.aspx
这让我不禁要问:
什么?
还有..。
所谓“用户名”,指的是该用户注册时创建的电子邮件地址?或者它们指的是UserId,它是一个整型变量?
而且,真的有这么简单吗?
@{
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>发布于 2011-07-16 18:39:30
和,它真的像这么简单吗?
是的,就是这么简单。实际上,要使其生效,您需要重定向,因为页面将使用请求cookie,该cookie仍指示管理员:
if(Roles.IsUserInRole("Administrator")) {
FormsAuthentication.SetAuthCookie(
"ClientsUserNameHere",
false // <-- set to true only if you want persistent cookies
);
Response.Redirect("~/Home/SomeUserPage");
}此外,您可以在会话中存储一些信息,表明这是一个管理员,作为一个普通用户(如果您需要知道它),而不是普通用户。
您还可以查看following article以了解更高级的模拟场景。
https://stackoverflow.com/questions/6716793
复制相似问题