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 Web API
- asp.net-mvc – asp.net MVC antiorgerytoken异常RedirectT
- MVC .Net Cascade在使用EF Code First Approach时删除
- asp.net – Jquery Ajax,不在Internet Explorer中工作
- asp.net – 为不同项目中的所有Web应用程序网页添加命名空间
- asp.net – 哪里是.ASPXAUTH cookie
- asp.net-mvc – 从ModelMetaData获取另一个属性的值
- asp.net-mvc – 如何在扩展方法中使用HTML帮助器方法?
- asp.net-mvc – Url.Action生成查询字符串,以任何方式生成完
- ASP.NET C#ListBox服务器控件不会禁用
- asp.net – 避免表格重新提交
- .net – IIS 6.0和ASPX中的404自定义错误不起作用
- asp.net-mvc-3 – 使用自定义VirtualPathProvide
- asp.net-mvc – asp.net mvc – string或int的路
- 隐藏ASP.NET菜单项
- asp.net – 如何正确地大写希腊字在.NET?
- asp.net-identity – UseOAuthBearerTokens vs U
- asp.net-mvc – 在没有模型的情况下手动将验证添
- asp.net – VirtualPath位于当前应用程序根目录之
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触