问题标签 [asp.net-roles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ASP.NET 中的自定义角色
我正在开发一个 ASP.NET 网站,该网站使用带有自定义身份验证机制的表单身份验证(以e.Authenticated
编程方式设置为 on protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
)。
我有一个 ASP.NET 站点地图。某些元素必须仅对登录用户显示。其他必须只显示给一个唯一的用户(即管理员,由永远不会更改的用户名标识)。
我想避免的:
- 设置自定义角色提供者:为这样一个基本的东西编写太多代码,
- 转换现有代码,例如通过删除站点地图并将其替换为代码隐藏解决方案。
我想做的事:
- 一个纯代码隐藏解决方案,可以让我在身份验证事件上分配角色。
是否可以?如何?如果没有,是否有简单的解决方法?
asp.net-membership - IsInRole 仅在用户登录时有效
如果用户未登录,为什么 HttpContext.Current.User.IsInRole("Customer") 返回 false,我认为因为用户被认为是匿名的,是这种情况,对吗?
谢谢
c# - ASP.NET 成员资格、角色管理和配置文件是否可用于 C# 类库?
我知道可以在 winform、wpf 或控制台应用程序中使用这些信息。但我宁愿确定哪个用户具有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。
此外在桌面应用程序中。用户如何登录?有什么特殊的winform或wpf登录控件吗?
asp.net - 扩展 RoleProvider GetRolesForUser()
中的GetRolesForUser()
方法RoleProvider
获取用户登录名并返回该用户的角色列表。但在我的应用程序中,这还不够,我需要更多信息才能获得用户的角色。
我怎样才能将这些额外信息放入方法中?
我有它Session
,但我发现它Session
在RoleProvider
.
我的想法是将这些额外信息放在扩展的某个类中MembershipUser
,假设我可以在RoleProvider
. 但我不知道如何创建CustomMembershipUser
并使其成为MembershipProvider
. 这甚至可能吗?
最简单的方法是使用 cookies,但我试图远离它。
asp.net-mvc - 如何最好地处理 asp.net 成员中的权限(而不是角色),特别是在 ASP.NET MVC 中
关于设置 asp.net 成员资格、角色提供者等有很多问题(和信息)。不管你是应该使用微软提供的内置平台,还是角色扩展你自己的基类和角色。
我决定扩展默认提供者并实现我自己的成员资格和角色提供者。现在我的问题是专门针对角色身份验证的。
传统上,您会创建角色,例如“经理、管理员、员工、超级用户”或任何您拥有的角色。但是对于我认为是更精细控制的权限,您会/应该做什么?让我详细说明....
在我的 asp.net mvc 站点中,我有不同的区域,如管理、管理、消息传递、报告等。我会为每个角色创建角色,如“管理员”、“经理”、“报告者”等。没有适当的角色,你可以'无法访问该站点的该区域。所以我会在课堂上用这个来锁定整个控制器。
但现在以一个地区为例;消息传递,并说我想为 CRUD 获得更细粒度的权限;创建消息、查看/阅读消息、编辑消息、删除消息等。
最后是我的问题。如何最好地实施这种更精细的控制?我看到的一种方法(不确定它是否好用)是为所有内容创建 asp.net 成员角色。所以我可能有....
Messenger(广义角色)、CreateMessage、ReadMessage、EditMessage、DeleteMessage。
一方面,我希望一些用户能够阅读/查看消息。但不一定创建或删除它们。单个控制器操作可以应用特定的角色。
你觉得这种方法有什么问题吗?你有更好的主意吗?
到目前为止的解决方案
我决定创建自己的模式并实现自定义成员资格和角色提供程序。我的架构包括;
- 用户
- 用户资料
- 允许
- 权限分配
- 角色
- 角色分配
接下来一两天会离开,但如果有机会,我会更新更多信息。
asp.net-membership - 当使用具有不同应用程序名称的多个角色提供者时,如何防止重复的成员资格用户?
我有一个使用“/”默认应用程序名称的成员资格提供程序。然后,我有多个应用程序共享这个通用的成员资格提供程序配置。每个应用程序都有自己的角色提供者配置,它们都与成员资格提供者共享相同的数据库,但使用不同的应用程序名称将它们的角色相互隔离。
当我创建一个成员时,会创建一个用户记录并因此在所有应用程序之间共享。然后,我创建每个应用程序独有的特定角色,因为它们使用不同的应用程序名称。
我遇到的问题是当我对已经存在的成员调用 Roles.AddUserToRole 时。由于成员资格和角色提供者的应用程序名称上下文不同,因此角色提供者无法识别用户,因此它会继续为角色所属的应用程序名称创建新的用户记录。
在成员和角色提供者之间不共享应用程序名称的情况下,如何防止创建这些重复的用户记录?
asp.net - 如何针对未定义角色的数据存储区编写 RoleProvider?
我正在考虑编写一个自定义 RoleProvider 来与外部第三方系统对话。但是,我需要的“角色”并没有在系统中明确定义,而是基于系统内的条件。例如,角色可能被定义为分配给特定委员会的人或处于特定成员级别的人。这意味着系统没有我想要使用的角色的概念,也没有定义它们的机制。显然,角色维护方法在这里毫无意义并且将保持未实现,但角色查询方法必须在某处定义角色。
在这种情况下如何定义和使用角色?为这些信息维护一个单独的数据库将是一场噩梦。此外,该框架将用于角色完全不同的多个部署中。我一直认为我需要使用角色对象编写某种系统,其中包含确定用户是否处于该特定角色所需的逻辑,但我无法弄清楚如何使其与角色提供者模型一起工作。
我错过了一些明显的东西吗?我会完全错了吗?
asp.net - ASP.NET 允许管理员用户访问基本用户帐户
我们有一个当前向公众发布的 ASP.Net Web 应用程序,它使用成员资格和提供者功能,并让我们的用户分配给“基本”角色。我们正在做的是开发一个管理站点,以便管理员(可能被分配一个“管理员”角色)能够登录到管理站点,在那里他们可以访问“基本”中的用户列表角色。
从管理站点,我们希望允许管理员单击任何“基本”用户并有效地登录到该帐户(在此过程中加载用户的个人资料信息,就像“基本”用户登录时的情况一样),同时仍保持登录到管理帐户。
任何人都可以建议一种方法来完成上述操作吗?
任何帮助,将不胜感激。
谢谢,布伦特
c# - ASP.NET MVC 单点登录和角色
我在 2 个 MVC 站点(称为 SiteA 和 SiteB)上进行了基本的单点登录,使用的方法类似于以下方法:
http://forums.asp.net/p/1023838/2614630.aspx
它们位于同一域的子域上,并在 web.config 中共享哈希\加密密钥等。我已经修改了 cookie,因此同一域上的所有站点都可以访问它。所有这些似乎工作正常。
这些站点位于不同的服务器上,无法访问相同的 SQL 数据库,因此只有 SiteA 实际保存用户登录详细信息。SiteB 有一个成员数据库,但用户为空。
这适用于我所需的场景,即:
1) 用户登录 SiteA
2) 应用程序从 SiteA(通过 AJAX)和 SiteB(通过 AJAX 使用 JSONP)加载数据
我在 SiteA 的 AccountController 上有以下登录操作,这是“魔术”发生的地方:
这做了一些我在初始场景中并不严格需要的东西,但与我的问题有关。它将登录到 SiteA 的用户的角色列表插入到身份验证票证的 UserData 中。然后通过 global.asax 中的以下内容在 SiteB 上“恢复”:
在我将角色添加到组合中之前,上述所有内容都有效。如果我只用 [Authorize] 属性装饰 SiteB 上的 Controllers\Actions,一切都会正常工作。但是一旦我添加 [Authorize(roles="TestAdmin")] 用户就不能再访问该控制器操作。显然我已将用户添加到 TestAdmin 角色。
如果我在 SiteB 上调试 global.asax 代码,当我离开 global.asax 代码时它看起来没问题,但是当我在控制器本身中遇到断点时,Controller.User 和 Controller.HttpContext.User 现在是一个系统。 Web.Security.RolePrincipal 不再设置角色。
所以我的问题是:有人知道我如何恢复 SiteB 上的角色或其他方式吗?
asp.net - ASP.Net Membership 登录成功,然后重定向到登录页面
目前,我们在使用 ASP.Net Membership 应用程序时遇到了很多问题。
由于不相关的原因,我们使用了一个使用旧式 Web.config 指定凭据的 MembershipProvider 实现和一个只允许一切的 RoleProvider(RolesProvider 可能是这里的问题!)。这不是我们可以改变的,因为它是我们遇到的其他一些问题的一种有点hacky的解决方法,我们只是想让这个最小的案例工作。
MembershipProvider 实现运行良好,当我在我的机器上测试它时一切正常。但是,当我将其推送到测试服务器时,我成功进行了身份验证(并且可以在跟踪日志中看到 cookie ),但随后被直接退回到登录页面,从跟踪日志中的这些条目可以看出:
在代码中添加了很多跟踪之后,我真的成功地进行了身份验证:
给我:
尝试在我被重定向到的 Default.aspx 中进行跟踪,甚至没有PreInit
触发事件。
我不认为RoleProvider 是问题所在,部分原因是它实际上只是对所有事情说“是”:
我查看了SO:62013、Forums:1318557和SO:62013 中提到的博客文章,这些都没有任何区别。
有什么想法,有人吗?我完全不知所措。