Nat*_*ate 10 .net c# forms asp.net security
是否可以将此角色提供程序AspNetWindowsTokenRoleProvider与ASP.NET FORMS身份验证一起使用(通过此MembershipProvider System.Web.Security.ActiveDirectoryMembershipProvider)?
它似乎只能使用<authentication mode="Windows">,它是否可以与FORMS一起使用?
后台 - 这里的目标是在使用Active Directory作为后端身份验证系统时提供ASP.NET Forms UX.如果有另一种简单的方法来做到这一点使用内置技术,这是伟大的,我想听听关于这一点.
更新
我应该说我有认证工作,我正在努力的是增加一个细粒度控制(如角色).
目前,我必须设置我的Active Directory连接以指向我的域中的特定OU,这限制了对该OU中物理用户的访问 - 我想要的是将我的Active Directory连接指向我的整个域,并且如果我使用Windows身份验证,则限制基于组成员身份(也称为角色)的访问权限 - 但我希望两全其美,这是否可以在不编写我自己的RoleProvider的情况下实现?
正如其他人所说,你不能使用ActiveDirectoryMembershipProvider与AspNetWindowsTokenRoleProvider.如果要将ADMP与表单身份验证一起使用,则可以选择以下几种方法:
使用AuthorizationManageraka AzMan. - AzMan内置于Windows 2003+中,可与Active Directory组进行交互.此外,还有一个AuthorizationStoreRoleProvider内置于.NET 2.0+中的可用于与之交互的内容.AzMan处理任务,操作和角色,其中可能是您的应用程序将被编码为对特定任务执行操作,然后可以将其分组到操作中,然后您可以创建有权执行各种操作的角色.安装AzMan时会安装一个管理应用程序,您可以使用它来管理任务,操作和角色.然而,AzMan有一些缺点.首先,AuthorizationStoreRoleProvider不识别任务.相反,它Roles使用操作列表加载列表.因此,除非您创建提供程序的自定义版本,否则您的应用程序将需要查找操作名称而不是任务名称.其次,它可以是一个与之合作的熊,在最低层次,仍然是通过COM.除非您希望管理员必须使用AzMan工具,否则您需要编写自己的页面来管理角色的操作,角色和成员资格.
使用SqlRoleProvider并将角色映射到用户名.该解决方案的优点是实现起来非常简单.由于RoleProvider在用户名而非UserId上运行,因此您可以开箱即用.在您的代码中,您只需检查IsInRole以确定给定用户是否已被放入代码识别的角色中.显着的缺点是它仅适用于用户名而不适用于AD组,因此管理员无法使用AD工具来管理用户.相反,您必须编写管理控制台来管理角色成员身份.此外,更改AD级别的用户名需要更新应用程序的已知用户名列表.
编写(或定位)一个尊重AD组的自定义AD RoleProvider.编写自定义角色提供程序并不适合胆小者,但这样做可以让管理员使用现有的AD工具管理角色成员资格.
| 归档时间: |
|
| 查看次数: |
7276 次 |
| 最近记录: |