处理嵌套组权限(ASP.NET角色提供者)
我们有一个安全模块,该模块基于组/角色成员资格,控制了ASP.NET中资源的权限.我已经构建了一个自定义ASP.NET角色提供商,该角色提供商对Active Directory查询了组成员资格,并且该模块使用. 安全检查工作的工作如下(每个请求)(由于表现原因而在地点使用的缓存,但在此列表中排除了): 查询广告以列表用户组成员资格 查询数据库,列出了访问请求资源的用户和组的列表 将AD结果与数据库的结果进行比较.如果用户明确拥有权利或用户所在的组具有权利,则允许访问,否则就不会. 当我们嵌套组时,问题就会出现.可以说我们有两个组: parentgroup 和 childgroup ,其中 childgroup 是Active Directory中 parentgroup parentgroup 的成员我们的用户是 childgroup 的成员.根据上面的逻辑,如果我们给予 childgroup 访问资源,则用户也可以访问资源. 现在(无论如何对我来说)现在逻辑
使用WindowsTokenRoleProvider的性能不佳
我正在使用WindowsTokenRoleProvide r来确定ASP.NET Web应用程序中的Active Directory组成员. 我的问题是性能不好,尤其是当用户在许多组中时.例如,我在253(!)组中,WindowsTokenRoleProvider大约需要150秒来确定我在哪些组中. 我知道我可以使用缓存,以便在以后的用户请求下进行此操作,但是显然,在第一次点击中花那么长时间就可以接受. 我有什么选择?我可以强迫WindowsTokenRoleProvider仅考虑某些群体吗? (我只对5感兴趣). 解决方案 一些测试表明我的问题是: Roles.IsUserInRole(groupName) 正在RoleProvider中访问方法GetRolesForUser - 正在检索用户是. 成员的每个角色的详细信息. 但致电: Roles.Provider.IsUserInRole(groupName) 确定用户是否在组中
2 2024-01-10
编程技术问答社区
使用会话的自定义RoleProvider
我正在考虑使用自定义成员Hipprovider/Roleproviders. 不幸的是,我们目前已经设置了一些会话内容的安全层.因此,当调用isuserinrole()方法时,会话对象始终为null,因为会话的内容都被预先填充. 关于我如何能够解决此问题的任何建议,并保留我们拥有的基于会话的安全模型的使用? (我没有写它,我必须使用它). 任何一如既往的帮助都非常感谢. 解决方案 可能需要一些代码. 几乎可以确定您需要阅读会话访问,因为听起来像某个授权标志? 这可能会为您排除在外,请阅读此
0 2024-01-06
编程技术问答社区
是否有一个authorizeattribute等同于.net的标准Web表单(非MVC)?
我正在研究一个将使用Windows角色提供商的项目,我想将功能限制为某些AD组. 使用MVC,我可以在操作方法上方使用AuthorizeAttribute并相应地重定向.对于不使用MVC的标准Web表单应用程序(.NET 3.5),我可以做类似的操作吗? 解决方案 您可以在Web.config中设置此授权元素. 使用时,基本上将域组转化为角色. 您可以在MSDN上阅读更多有关它的信息 其他解决方案 我知道这是一篇古老的帖子,但以为我刚刚经历了我的经验
6 2024-01-03
编程技术问答社区
如何在一个单一的自定义角色提供者中同时使用windows和form auth?
我有一个自定义角色提供商,建立在角色实体上,以及在我的表格auth用户实体和角色之间的许多关系中,许多关系称为角色使用者.我现在也想将此角色提供商转换为现在使用Windows Auth.对我来说,表格用户的背包似乎方便,并在我的用户实体中创建广告用户的"阴影". 这是可行的还是皱眉,并且在这种设置上有任何好的论文等吗? 我首先使用EF代码针对SQL 2005,而不是使用自定义会员提供商,因为我的用户控制器和存储库处理了所有我需要的一切;只是角色提供商. 解决方案 请注意,我们有5种类型的身份验证: 1- 匿名身份验证 2- asp.net冒充 3- 4-表格身份验证http 302登录/重定向 5- Windows身份验证http 401挑战 MVC身份验证的理念是指MVC不使用 ViewState 对用户进行身份验证.它不使用视图状态或基于服务器的表单.这使得MVC框架非常适合想要完全控制应用程序行为的开发人员. 根据MVC
MVC自定义角色提供者没有被击中
我添加了一个自定义角色提供商,但是无论出于何种原因,它都没有使用,似乎默认值正在不断使用.这是我的自定义角色提供商的代码 namespace Models.Security { public class MatchMakerRoleProvider: RoleProvider { public override string[] GetRolesForUser(string username) { username = username.Split('\\')[1].ToLower(); using (var db = new EncodingEntities()) { var user = db.Admin_Users.FirstOrDefault(u => u.UserName.Equals(username, StringCo
0 2023-12-07
编程技术问答社区
ASP.NET网络表单--如何将WIF认证与会员提供者和角色提供者相结合
我正在使用Windows Identity Foundation在.NET 4.5中的ASP.NET Web表单中的形式验证 我如何将WIF表单身份验证与我的自定义会员提供商和我在Web.config中定义的自定义角色提供商相结合? 我想使用我的自定义会员提供商从SQL DB(例如电子邮件,生日,Avatar Iamge)加载其他用户信息. 我想使用我的自定义角色提供商从SQL DB中获取所有角色. 我的身份验证方法身份验证(用户名,密码)从login.aspx loginbuttonclick: public static ClaimsPrincipal Authenticate(string userName, string password) { var principal = AuthenticateWindowsUser(userName, password); var inputIdentity = (Wind
4 2023-12-03
编程技术问答社区
在asp.net MVC应用程序的web.config中指定角色
我正在创建带有表格的MVC应用程序.我正在对Active Directory进行身份验证,因此创建了一个自定义的Roleprovider.我的应用程序仅关注一系列角色,到目前为止,我一直在Web.config的AppSettings部分定义: ... 但是,我遇到了这种方法的几个问题: 我无法在我的调解器数据注释中引用这些设置:[Authorize(Roles = ConfigurationManager.AppSettings["DirectorRole"])]它不会编译,因此我必须再次指定组的名称:[Authorize(Roles = "Domain\\Directors")]. 在我的we
6 2023-11-29
编程技术问答社区
在运行.NET 4的IIS 7上找不到默认角色提供者
早上好, 我正在尝试在我的Web应用程序中实现我的自定义会员和角色提供商,该应用程序在IIS 7的默认网站下实施了我的Web网站7.我的Web应用程序在.NET 4应用程序池中运行. 但是,设置相应的web.config后,我会收到以下错误: Parser Error Message: Default Role Provider could not be found. 我在系统中包含了以下代码.
2 2023-11-29
编程技术问答社区
认证时,umbraco公共访问错误
我在Umbraco 7中有公共访问问题. 我使用自定义会员提供商通过我的CRM数据库来验证用户. 我设定了一项规则,让仅使用,我使用自定义角色提供商来定义身份验证的用户具有访问者的角色.如果未对其进行身份验证,则将其重定向到登录页面. 当我调试网站时,用户有角色: 我已验证,当前用户的作用是好的. ,但我仍然重定向到登录页面!我不明白. 我的角色提供商: public class CustomRoleProvider : Umbraco.Web.Security.Providers.MembersRoleProvider { const int SITE_ID = 6; public override string ApplicationName { get { return "Site"; } } public override str
4 2023-11-06
编程技术问答社区
SQL网络接口,错误:26-错误定位指定的服务器/实例
好吧,我有一个很大的问题,我正在尝试几天来解决,但我做不到,所以我需要您的帮助.我在ASP.NET 4.0中有一个Web应用程序,在该应用程序中,我实现了自定义会员资格和角色提供商.当我打开App HomePage时,它连接到数据库并检索一些信息.还有一个登录表单,当我登录时,它通过数据库验证了用户并将我重定向到保留页面,但是出现此错误: 在网络相关或实例特定的错误时发生 建立与SQL Server的连接.没有找到服务器或 无法访问.验证实例名称是正确的,并且 SQL Server配置为允许远程连接. (提供商:SQL 网络接口,错误:26-错误定位服务器/实例 指定) 描述: 在执行当前时发生了一个未经治疗的例外 网络请求.请查看堆栈跟踪以获取有关的更多信息 错误及其起源于代码的位置. 例外详细信息: system.data.sqlclient.sqlexception:与网络相关或 建立连接到与实例的错误 SQL Server.服务器未找到或无法访问.核
MVC4: UserIsInRole-Unable to connect to SQL Server database
用这个折断我的头,昨天效果很好,今天似乎被打破了: 此行正在生成错误: @if (Roles.IsUserInRole(HttpContext.Current.User.Identity.Name, "Admin")) 错误是: 无法连接到SQL Server数据库. 整个异常: System.Web.HttpException was unhandled by user code HResult=-2147467259 Message=Unable to connect to SQL Server database. Source=System.Web ErrorCode=-2147467259 WebEventCode=0 StackTrace: at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String
8 2023-09-23
编程技术问答社区
Symfony2 in_memory users provider问题
我有一个Symfony2应用程序,该应用程序从in_memory用户提供商中加载用户. security.yml如下: security: encoders: Symfony\Component\Security\Core\User\User: plaintext role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: in_memory: users: admin: { password: mypassword, roles: [ 'ROLE_ADMIN' ] } firewalls: dev: pat
12 2023-08-24
编程技术问答社区
刷新ASP.NET角色提供者
简单的问题... 给定我有一个ASP.NET网站,该网站使用[自定义] Roleprovider, 有什么办法可以以某种方式"刷新"提供商,而无需强迫用户登录网站并重新登录? 我正在寻找类似于虚构方法的东西 Roles.Refresh() 具体来说,我正在考虑这一点,因为管理员如果更改了用户的角​​色,则用户会议可能每10分钟或其他时间刷新一次. 解决方案 我认为您在web.config中有类似的东西: 角色是删除cookie .这种方法对我有用.我添加了cookieName属性,因此我不依赖ASP.NET的默认值.但是,对于您的情况,您可能只能将cookieTimeout属性设置为合理的事物并可以完成. 当然,此方法不会立即更新角色.删除cookie后,将在下
2 2023-08-04
编程技术问答社区
如何使RavenDB DocumentStore对调用API可用
我有一个使用RavendB作为数据存储的MVC4应用程序.该应用程序具有MVC/Web,域,数据和安全层. 我正在编写需要初始化数据库并访问文档存储的自定义会员资格和角色提供商.我正在从安全层编写这些类,并且想使用单顿文档Store(设置在应用程序中),但我不知道如何访问它. 其他,我看到的关于Ravendb的自定义提供商的示例在提供商.initialize()方法中创建新的文档存储程序实例,但这似乎打破了每个服务器拥有单个文档存储的规则. 当前,我在application_start()中创建了Ravendb DocumentStore的单个实例.我在MVC/Web层中有一个基本控制器,可以处理文档存储. . 有没有办法实现这一目标?我应该将安全逻辑移动到MVC/Web层以简化事物吗? 解决方案 我使用单身图案提出了自己的解决方案. 我所做的是创建一个单身人士,该单元在我的应用程序的数据层中公开了一个公共IDocumentStore属性.它利用了一个
6 2023-07-25
编程技术问答社区
如何安全地使用MVC WebAPI OData端点?
我有一个在~/odata/上定义的ODATA端点,除非用户已进行身份验证,否则不需要访问该端点(实际上,您如何为非认证的用户确保此保护). i在Web.config中设置基于角色的身份验证: 用户登录时,我不使用ODATA端点进行身份验证(主要是因为我需要弄清楚如何保护此验证). 我使用EntityFramework来验证用户,返回用户对象并补充会员/角色详细信息. 这是遵循的标准方法,允许用户的数据调用通过WebAPI路径,如果是,您如何确保任何请求WebAPI请求(请记住,我正在使用ODATA)仅返回与该数据有关的数据登
16 2023-05-07
编程技术问答社区