2011-03-04 55 views
0

我从头开始构建我的第一个asp.net应用程序。我有两个不同的会员供应商。一个是基本的sql提供者,另一个是活动目录。用户的“角色”取决于用户如何登录。我想使用asp.net的角色管理器功能,但我不想构建整个角色提供者部分,因为我真的没有“角色”我的应用程序,我有两种会员类型。asp.net使用会员供应商来设置角色

有没有办法在登录时通过成员资格提供程序设置用户角色,或者以某种方式将已登录的用户标记为已通过sql或AD认证?

这是我的第一个asp.net应用程序,我甚至想过这是正确的方式吗?

回答

0

角色和成员在asp.net中是两个截然不同的东西。

在登录时,你需要一个标志分配给识别他们是怎么记录的用户对象。

然后在

public override string[] GetRolesForUser(string username) 

检查该标志,并返回相应的作用

+0

您能否详细介绍一下? 调用哪个方法返回用户对象? – ChrisOPeterson 2011-03-04 21:18:20

0

你是试图以一种他们没有设计的方式来使用这些角色,恐怕你必须有一个角色提供者才能工作。

为什么不使用MembershipUser.ProviderName属性来检查哪些供应商提供的用户身份?

+0

我将如何去设置providername属性?我甚至无法找到MembershipUser的创建位置。如果我能找到,那么我可以通过编程方式在登录时添加一个角色,是的? – ChrisOPeterson 2011-03-04 21:19:33

+0

你说你使用两个memberhipproviders(sql和ad),所以只需调用Membership.GetUser()。ProviderName来检查用户来自哪个提供者。你不需要角色提供者,但是如果你实现了角色提供者,你可以为用户添加一个角色。我不知道在哪里设置这个providername,我猜可以在web.config的membership部分完成。 – Willem 2011-03-06 21:56:26