我刚刚开始使用一个小型的ASP.NET Web应用程序。在此项目中,我需要使用Active Directory对用户进行身份验证。我设法使用Active Directory成功验证用户。但是通过自定义角色提供程序的授权,我很困惑。您看,用户名和密码存储在AD中。所以,我的方法是在Login Control的LoggedIn事件之后,我检查UserName是否尚未存储在Users表中,然后我将UserName存储在那里。最后,我将AD用户的所有UserName存储在Users表中,以便我可以为用户分配角色。请参阅下面的表格图表:
alt text http://img265.imageshack.us/img265/5986/20100221200058.jpg
假设我将UserA分配给RoleOne。在他成功登录后,我会查询他的角色。
我在哪里保留角色票?在Cookie或会话中? ASP.NET角色提供程序的授权如何工作?我想像ASP.NET角色证明器一样存储授权票据。
答案 0 :(得分:0)
您是否考虑过将Active Directory组用于角色和WindowsTokenRoleProvider(或访问AD的自定义角色提供程序)?我发现这适用于您使用AD进行身份验证的情况。一个提示:使用cookie来存储用户的角色,这样您就不必在每次请求时都找到它们。