3

我需要知道如何SiteMapProvider.IsAccessibleToUser()工作。

在表单身份验证的情况下使用的内置XmlSiteMapProvider调用。HttpContext.User.IsInRole()System.Security.Principal.GenericPrincipal

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

4

2 回答 2

3

您可以通过实现 RoleProvider 来做到这一点。查看这些链接:

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

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

于 2010-05-23T22:38:20.900 回答
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

于 2010-05-24T02:19:54.070 回答