【发布时间】:2010-08-11 11:41:17
【问题描述】:
我们的站点有两个 ASP.NET 成员提供程序。内置的和自定义的(SqlMembershipProvider.
我可以同时登录两者,但我不需要同时登录。
我遇到的问题如下:
用户“person_a@site.com”登录到内置提供程序。然后他们导航到我们需要自定义提供程序的网站部分。
在此页面上,我可以检查他们是否已通过身份验证,并获取他们的用户名。然后,我可以从自定义提供程序 GetUser 方法中获取 MembershipUser 对象。 (HttpContext.Current.User.Identity.Name)
用户名“person_a@site.com”也可能存在于自定义提供程序的用户中。
但是,我不希望他们在这里登录,因为他们没有针对自定义提供程序进行身份验证。
那么,是否可以检查 HttpContext.Current.User 是从哪个提供程序生成的。
希望这一切都有意义!
【问题讨论】:
-
嗨 Danny,自定义提供程序提供了哪些 MS 没有提供的服务?您是否考虑过使用角色来控制对网站不同部分的访问?
-
这是一个使用 Umbraco 的解决方案,因此使用内置的解决方案。需要自定义一个来验证数据库表。用户可以登录到两个不同的区域,并且这些登录不是共享的。我的一个想法是在用户登录每个区域时设置一个 Session 变量,即当他们登录到成员区域时设置一个 Session[“isMember”],当他们登录到其他地方时设置一个 Session[“isDef”]。然后,我可以在对用户进行身份验证时检查此会话变量。
标签: asp.net asp.net-membership