Как IPrincipal получает свои роли? - PullRequest
2 голосов
/ 24 мая 2010

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

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

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

Ответы [ 2 ]

3 голосов
/ 24 мая 2010

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

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

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

2 голосов
/ 24 мая 2010

Чтобы использовать пользовательскую логику, вы можете создать свой собственный файл 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

...