Как 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