我们有两个不同的用户列表,我们需要登录访问我们网站的各个部分。 这些列表无法组合,因为每天都会同步到外部托管的数据源,并且两个表必须完全相同。
我们在网站上设置了两个会员提供商,但我的问题是,是否可以允许两者同时登录?
我发现的问题是HttpContext.Current.User.identity.name包含上次成功登录的用户名。
答案 0 :(得分:0)
答案 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%>会显示出比你想要的更多。