Как IPrincipal получает свои роли?

Мне нужно узнать как SiteMapProvider.IsAccessibleToUser() работает.

Встроенный XmlSiteMapProvider звонки HttpContext.User.IsInRole() который использует System.Security.Principal.GenericPrincipal в случае проверки подлинности форм.

Где текущий пользователь получает свои роли? Какой провайдер загружает такую ​​информацию? Я хочу перегрузить его и использовать собственную логику.

2 ответа

Решение

Вы делаете это путем реализации RoleProvider. Проверьте эти ссылки:

http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx

http://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspx

Чтобы использовать пользовательскую логику, вы можете создать свой собственный файл cookie для проверки подлинности форм с ролями и прочитать его обратно в Global.asax.

Смотрите эти:

private void SetAuthenticationCookie(int employeeID, List<string> roles)

protected void Application_AuthenticateRequest(Object sender, EventArgs e)

http://weblogs.asp.net/rajbk/archive/2010/04/01/securing-an-asp-net-mvc-2-application.aspx

Другие вопросы по тегам