ASP.NET MVC4安全性,身份验证和授权
我正在使用Visual Studio 2011测试版工作在一个新的asp.net mvc4项目,并试图让我的头脑围绕整个安全的事情.它是一个内部Intranet应用程序,最初将使用单一登录,因此用户将不会提示输入 Windows ID /密码.该公司有一个用于存储不同应用程序角色的自定义应用程序,可通过存储过程调用获得.它将需要一个用户的登录ID,并返回一些包含角色的集合. “MyApp.Data”,“MyApp.User”,“MyApp.Admin”,那么这是什么 – 这是一个自定义会员资格提供商,自定义角色提供者还是别的? 我一直在阅读授权,认证,会员资格,角色等所有内容,我目前无法看到树木的木头.我已经看到,现有的ASP.NET安全对象已经过试用和测试,除非有非常复杂的要求,内建的这些对象就足够了,所以我很高兴使用已经存在的内容. 所以如果用户已经登录到网络,这意味着它们是经过验证的 – 是否正确?如果是这样,那么我只需要实施授权.是否需要使用Authorize属性来装饰每个Controller或Action?如果我从我的自定义角色存储应用程序中检索角色,那么如何设置[Authorize(Roles =“ABC”)]的“ABC”部分? 我读了几篇文章和博客文章,包括Jon Galloway的这篇文章,但是我终于失去了意义: Customizing Authentication and Authorization The Right Way 这么多问题…如果有人知道如何所有这些挂在一起的高级别的描述,那么我都是耳朵:) 解决方法好的,没有一个答案给出一个高层次的看法,所有这些挂在一起我以为我会写下我的发现到目前为止:>该公司使用Active Directory来存储用户登录详细信息,因为这用于成员资格我不需要自定义会员资格提供商.一旦用户登录到公司网络,那么它们被认证.添加全局授权过滤器可确保访问系统的任何用户都需要进行身份验证.来自Rick Anderson的最新信息msdn: http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx 所以在Global.asax我会补充说: public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new System.Web.Mvc.AuthorizeAttribute()); //new } >一旦用户认证,我需要照顾授权.该公司拥有一个现有的全球数据存储区,我不会更新访问权限,只能读取访问权限,因此我可以通过存储过程调用检索给定用户的角色.可能需要几天到几周的时间才能帮助台在请求之后创建角色,因此,最初将创建2个标准角色,即用户和管理员,随后的角色将存储在我们的应用程序数据库中. http://msdn.microsoft.com/en-us/library/9ab2fxh0.aspx CREATE TABLE角色 CREATE TABLE UsersInRoles(用户名文本(255)NOT NULL,Rolename Text(255)NOT NULL,ApplicationName Text(255)NOT NULL,CONSTRAINT PKUsersInRoles PRIMARY KEY(用户名,Rolename,ApplicationName))>一旦设置完毕,我需要弄清楚如何将全球数据存储中的2个标准角色(User and Admin)与存储在我的应用数据库中的自定义角色合并,如果我可以使用(例如)[Authorize(Roles =“Admin,Superuser”)],或者我需要对AuthoriseAttribute进行子类化,并做一些更聪明的事情.>我只是意识到,当我使用AD进行身份验证时,我需要一种方法来添加/注入当前用户是其成员的角色集合.所以虽然我不需要任何自定义的成员资格提供者的功能,我仍然需要与httpContext.User交互来更新其角色集合. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 从页面到局部视图的asp.net mvc参数
- asp.net – 在IIS7上为WordPress重写URL
- ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
- asp.net使用多线程更新UI
- asp.net – Windows应用程序与Web应用程序开发
- asp.net-mvc – 如何将复选框绑定到视图模型的List属性?
- ASP.NET代码隐藏中的当前工作目录 – 我们可以依赖它吗?
- asp.net – Request.Browser.Platform不返回iPad,OSX或Wind
- asp.net-mvc-4 – .net 4.5 ASP.Net web API JSONP支持
- asp.net-mvc – ControllerActionInvoker
- .net – asp:GridView文本框始终返回空值
- asp.net – 按钮属性: – commandName和Command
- asp.net-mvc – 如何在ASP.NET MVC中生成弹出页面
- asp.net – 我可以愚弄HttpRequest.Current.Requ
- asp.net-mvc – 在Asp.Net MVC中使用千位分隔符的
- VS 2015.为ASP.NET 5 web项目设置正确的目标框架
- asp.net – Mocking HttpContext不起作用
- asp.net-mvc-3 – 在使用Unity容器时为此对象异常
- ADO.NET 2.0 Dataset和Datatable 新功能新特性
- asp.net – 如何使用javascript生成假回发?