我正在尝试使用角色进行表单身份验证,我有 global.asax Application_AuthenticateRequest 方法从 cookie 中获取角色,效果很好。但我不知道在 Web.Config 中配置什么提供程序。我不想使用 SQL 服务器,只是使用 cookie。
这一行创建了 IPrincipal: (roles 是一个带有角色的字符串数组)
Context.User = new GenericPrincipal(Context.User.Identity, roles);
最终目标是让 DataAnnotations 像 [Authorize(Roles = "Admin")] 和 IsInRole 方法工作。
此外,IsInRole 方法在 global.asax 中使用时效果很好,但在其他地方则不行。为什么不?
Web.config 目前配置如下:
<roleManager defaultProvider="DefaultRoleProvider" cacheRolesInCookie="true">
并且 DefaultProvider 很遗憾地无缘无故地连接到一些空的 SQL 数据库。
这甚至可能吗?
谢谢。