在Silverlight应用程序中使用Windows集成身份验证与SqlRoleProvider

时间:2011-02-09 10:53:05

标签: windows silverlight iis-7 wcf-ria-services

我正在研究Web应用程序,该应用程序要求将用户置于角色中,并根据其角色给予不同的权限。这可以通过使用Forms Authentication和SqlRoleProvider轻松完成。但是,应用程序将在企业内部网内部使用,并且表单身份验证会强制用户在每次要使用应用程序时手动登录。使用Windows集成的autenthification看起来更优雅,因为用户已经登录企业域。但是这里的角色存在问题,默认情况下,集成身份验证使用在用户Windows帐户(组成员资格等等)中构建的角色。我的应用程序要求我将用户置于自定义角色中。因此,就角色而言,拥有数据库i控制是更有利的解决方案。 有没有办法使用Windows集成身份验证(用于身份验证)和SqlRoleProvider(用于角色和用户管理)?

2 个答案:

答案 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),它可以正常工作。

http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx