我正在研究Web应用程序,该应用程序要求将用户置于角色中,并根据其角色给予不同的权限。这可以通过使用Forms Authentication和SqlRoleProvider轻松完成。但是,应用程序将在企业内部网内部使用,并且表单身份验证会强制用户在每次要使用应用程序时手动登录。使用Windows集成的autenthification看起来更优雅,因为用户已经登录企业域。但是这里的角色存在问题,默认情况下,集成身份验证使用在用户Windows帐户(组成员资格等等)中构建的角色。我的应用程序要求我将用户置于自定义角色中。因此,就角色而言,拥有数据库i控制是更有利的解决方案。 有没有办法使用Windows集成身份验证(用于身份验证)和SqlRoleProvider(用于角色和用户管理)?
答案 0 :(得分:4)
我们已经在我们的应用程序中完成了这项工作,您必须创建自己的RoleProvider,然后在web.config中指定它。然后,您可以从任何您喜欢的来源加载角色。
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<clear />
<add name="MyRoleProvider" type="MyCompany.MyRoleProvider, MyAssembly" />
</providers>
</roleManager>
RoleProvider http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.aspx
答案 1 :(得分:3)
BenCr是对的。但我想避免创建自己的角色提供程序,并希望能够轻松添加用户(通过Visual Studio内置的ASP.NET配置工具)
所以我在网上发现了这个并且它有效。它最终变得比我想象的要简单得多。 您只需在Web配置文件中启用角色,与Windows集成身份验证一起使用。复制本地mdf文件(并将其附加到sql server),它可以正常工作。