использование встроенной проверки подлинности Windows с SqlRoleProvider в приложении Silverlight - PullRequest
4 голосов
/ 09 февраля 2011

Я работаю над веб-приложением, которое требует, чтобы пользователи были распределены по ролям и получили разные разрешения в зависимости от их ролей. Это можно легко сделать с помощью проверки подлинности с помощью форм и SqlRoleProvider. Но приложение будет использоваться внутри корпоративной интрасети, и формы аутентификации вынуждают пользователей вручную входить в систему каждый раз, когда они хотят использовать приложение. Использование встроенной аутентификации Windows выглядит намного элегантнее, поскольку пользователи уже вошли в корпоративный домен. Но здесь есть проблема с ролями, встроенная аутентификация по умолчанию использует роли, которые встроены в учетные записи Windows пользователей (членство в группах и т. Д.). Мое приложение требует, чтобы я ставил пользователей на заказные роли. Так что в отношении ролей наличие базы данных, которую я контролирую, является гораздо более выгодным решением. Есть ли способ использовать встроенную аутентификацию Windows (для аутентификации) вместе с SqlRoleProvider (для ролей и управления пользователями)?

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Мы сделали именно это в нашем приложении, вам нужно создать свой собственный 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

3 голосов
/ 16 февраля 2011

BenCr прав. Но я хотел избежать создания собственного поставщика ролей и хотел с легкостью добавлять пользователей (с помощью встроенного в Visual Studio инструмента настройки ASP.NET)

Так что я нашел это в сети, и это работает. Это оказалось намного проще, чем я думал. Вы просто включаете роли в файле веб-конфигурации вместе с встроенной аутентификацией Windows. Скопируйте локальный файл mdf (и прикрепите его к серверу sql), и он работает.

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

...