ASP.NET成员资格 - 一次登录到两个位置

时间:2010-08-11 22:24:03

标签: asp.net asp.net-membership

我们有两个不同的用户列表,我们需要登录访问我们网站的各个部分。 这些列表无法组合,因为每天都会同步到外部托管的数据源,并且两个表必须完全相同。

我们在网站上设置了两个会员提供商,但我的问题是,是否可以允许两者同时登录?

我发现的问题是HttpContext.Current.User.identity.name包含上次成功登录的用户名。

2 个答案:

答案 0 :(得分:0)

这里提出的建议会有什么帮助吗?

Can SiteB Restrict Access Only to Users Authenticated on Site A? How?

答案 1 :(得分:0)

使用某种分隔符并将两个用户都放入登录标识中。例如mp3duck / employee1

当您通过会员提供商1登录时,您会执行类似

的操作
// extract the existing prov2ID so you can keep it. GetID() would be a string split function
string prov2ID = GetID(User.Identity.Name, 2); 
FormsAuthentication.SetAuthCookie(prov1ID + "/" + prov2ID, false);

反之,通过会员提供商2登录。

如果您使用< asp:login>控制,您将修改UserName propery而不是调用SetAuthCookie(),因为登录控件调用SetAuthCookie()本身。

您可以将任何类型的内容放入身份名称中。我经常用它来存储用户主键的数字ID和用户名。唯一的缺点是你必须在html中显示它时清理它。例如您好<%User.Identity.Name%>会显示出比你想要的更多。