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 – 单元测试中的ViewResult.ViewName属性为空
- asp.net-web-api2 – 在WebAPI2项目中加载System.IdentityM
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序吗?
- asp.net – 多个用户控件和JavaScript
- ASP.NET成员:拒绝用户阻止CSS,页面无法正确呈现?
- asp.net-mvc-2 – ASP.NET MVC 2并列为隐藏值?
- asp.net – 如何从WCF客户端拦截raw soap request / respon
- asp.net-core – .NET Core SDK安装程序无法在Windows 2012
- asp.net-mvc-3 – 在使用Unity容器时为此对象异常定义的无参
- asp.net-mvc – 将viewdata传递给asp.net mvc masterpages
- ASP.NET web.config文件是否失控?
- asp.net-core – 如何使用FluentValidation.AspN
- asp.net-web-api – 从ASP.NET Web API ASP.NET
- asp.net – 我想列出我的下拉列表中的所有国家/地
- asp.net-mvc – ASP.net身份在删除外部帐户后停止
- ASP.NET C#ListBox服务器控件不会禁用
- asp.net-mvc-3 – 如何在Razor中为Nullable创建编
- asp.net-mvc-4 – Can Castle Windsor可用于在AS
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序
- 如何使用WMD在ASP.NET中存储降价?