如何在ASP.NET MVC中手动设置用户的角色?
发布时间:2020-12-15 23:26:52 所属栏目:asp.Net 来源:网络整理
导读:我正在开展的这个项目要求我保留一个本地数据库的管理员用户,并为常规用户使用一个外部数据库.在admin db中通过认证的任何人都应该被分配为“admin”角色,任何通过其他数据库认证的人员将始终被分配一个“用户”角色. 我可以手动分配这些角色吗?我不需要角
我正在开展的这个项目要求我保留一个本地数据库的管理员用户,并为常规用户使用一个外部数据库.在admin db中通过认证的任何人都应该被分配为“admin”角色,任何通过其他数据库认证的人员将始终被分配一个“用户”角色.
我可以手动分配这些角色吗?我不需要角色提供者或任何东西的复杂性,因为我只使用这两个角色,这些角色将始终基于他们认证的数据库. 如果您可以提供示例代码或某些文档的链接,这将是一个巨大的帮助.谢谢! 编辑: 目前我没有使用角色提供者,并且创建一个似乎是一个麻烦.我知道它不是“最佳实践”,但我只需要在登录过程中分配2个角色中的1个(这绝对不会改变).将角色信息存储在数据库中也是没有意义的,因为用户已经通过角色将它们分成了2个dbs. 这里有一些伪代码: if (AdminDB.ValidateUser(username,password)==true) { SetAuthCookie(username); AssociateUserWithRole(username,'admin'); } elseif (UserDB.ValidateUser(username,'user'); } else { // Login failed. } 它的’ThisSession.AssociateUserWithRole’部分我不知道.基本上,一个用户被认证,我需要告诉.NET用户所属的角色. 解决方法
Implementing a role provider并不是特别困难 – 特别是如果你只是执行角色检查,而不是角色管理.只需要实现你需要的那些部分,剩下的就是NotImplementedExceptions.如果您只有一个应用程序,您也不必太关心该部分.请注意,您需要的部分将由框架如何使用它决定,而不是如何使用它.我认为,例如,您将需要实现返回所有用户角色的位,即使您只想检查它们是否处于特定角色.
也就是说,您可以省略整个RoleProvider并在会话中做整个事情.在这种情况下,您将实现自己的AuthorizeAttribute,并将其替换为您自己的身份验证和角色检查位.验证后将用户的角色存储在会话中,并使用您的属性和提供给您装饰它的方法/类的属性的参数进行检查. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在页面生命周期的PreInit事件中创建动态控件?
- asp.net – 在fileupload中选择立即调用C#函数文件
- asp.net-mvc – 覆盖EditorForModel模板
- asp.net – 从命令行包含项目中的文件
- asp.net-mvc – Telerik MVC Grid,从自定义命令删除ajax后重
- asp.net – 如何解码RDP服务器的远程资源URL(webfeed.aspx)
- asp.net-mvc – 如何将MVC添加到现有的Web API项目中
- asp.net – 如何使用EF仅更新单个字段
- 将ASP.NET应用程序本地化为普通话
- asp.net-mvc – ASP MVC 3支持多行编辑
推荐文章
站长推荐
- ASP.NET Web App分发
- asp.net – IIS Express全能子域名网址
- asp.net – Microsoft重写模块 – 强制www url或
- asp.net-core-mvc – 将复杂对象存储在MVC 6中的
- asp.net-mvc – Unity使用参数将依赖项注入MVC??
- asp.net-mvc-3 – 在脚手架视图MVC3中进行分页
- asp.net-mvc – ASP.NET MVC – 在ActionFilter中
- asp.net-mvc – 隐藏sessionState提供程序值的最
- asp.net core 使用 signalR(二)
- asp-classic – 如何使用经典asp中的vbscript下载
热点阅读