IPrincipal如何发挥作用?

时间:2010-05-23 22:32:34

标签: asp.net sitemapprovider iprincipal isinrole isaccessibletouser

我需要了解SiteMapProvider.IsAccessibleToUser()的工作原理。

内置XmlSiteMapProvider次调用HttpContext.User.IsInRole(),在表单身份验证时使用System.Security.Principal.GenericPrincipal

当前用户在哪里获得其角色?哪个提供商加载此类信息?我想重载它并使用自定义逻辑。

2 个答案:

答案 0 :(得分:3)

您可以通过实施RoleProvider来实现此目的。看看这些链接:

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

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

答案 1 :(得分:2)

要使用自定义逻辑,您可以使用角色创建自己的表单身份验证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