问题标签 [asp.net-authorization]

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.

0 投票
1 回答
25 浏览

asp.net - 如何最好地管理 .NET 应用程序中的成员和角色

我意识到这个问题可能不适合 SO 的问答格式,尽管我认为这是迄今为止提供一些洞察力的最佳社区。在处理授权和身份验证方面,Forms Authentication、MembershipProvider、SimpleMemberShipProvider 和 Sessions 有什么区别?

我不会问“哪个更好”,因为这显然取决于其实施的目的。我的理解是,通过会话管理这些数据通常不适用于此,尽管我提供的最有可能的列表并不详尽。

我不确定每种方法的好处和局限性以及如何最好地实施它们。理想情况下,我会使用 VB.NET 制作 Web 表单应用程序,但也可以使用 C# 和 MVC。

任何可以解决此问题的帮助或在线资源都会有很大帮助。

0 投票
1 回答
1635 浏览

c# - 从 web.config 获取允许用户

我试图从 web.config 获取允许的用户来访问应用程序并拒绝其他人并将他们重定向到另一个页面。这是我的代码:

配置

代码

0 投票
2 回答
437 浏览

asp.net-mvc - 每次请求后 ASP MVC 4 用户注销

我正在开发在我的开发系统上运行良好的 Asp Mvc 4 项目,它在我的演示托管服务器上也运行良好。但是当我在客户端的服务器上上传网站时,它要求在每个页面上登录。当我登录一个页面时,我可以在该页面上执行操作。但如果它打开另一个页面,它会将我重定向到再次登录页面。

我无法理解原因。因为它在我的本地系统和我的演示主机上都可以正常工作。但是在客户端托管上它的行为是这样的。

我正在使用自定义授权属性。但我在另一个运行良好的站点上使用此方法。

请有任何想法或解决方案。

以下是我的 web.config 文件:

0 投票
2 回答
884 浏览

asp.net - Azure 中的 ASP.NET Web API:自定义身份验证过滤器以防止暴力破解?

我有一个来自 VS2013 SPA 模板(web api 2.2)的网站,它利用了 ASP.NET Identity 2.1,一切都运行良好。我的控制器方法如下所示:

它按预期工作:

  • 未授权用户无权访问
  • 授权用户进入后,我可以获取他们的用户ID

我现在想修改应用程序以防止过多的 API 请求。我计划检查该特定用户 ID 是否在特定时间范围内发出了一定数量的请求。我正在寻找最佳地点的建议。

我不想在每个控制器中重复这个逻辑,看起来动作过滤器可能是最好的地方。但是由于这将需要读取用户 ID,而且我不确定过滤器的顺序是否得到保证,所以如果可能的话,派生已经被调用以进行授权的过滤器并添加我的额外逻辑也可能是有意义的。

我想知道是否有人可以举一个做类似事情的例子?似乎不是“授权”,而是在自定义身份验证过滤器中,我不确定如何将它结合在一起。

感谢您的任何建议...

0 投票
1 回答
348 浏览

asp.net-mvc - ASP.NET MVC/Web Api 常用授权和认证

使用 ASP.NET MVC 和 WEB API 处理授权和身份验证的最常见场景是什么?

我发现一些博客谈论 Web Tokens 以及 OAuth、Owin 和 Identity 如何成为 WEB API 的不错选择,但我没有找到一个很好的资源来展示如何在两个项目中使用相同的方法。也许我看错了。

我走错路了吗?可能吗?

谢谢你们!

0 投票
1 回答
1617 浏览

c# - 基于权限的 Html 元素可见性,而不是 MVC 中的角色

我见过很多例子,其中 html 元素的可见性可以在 cshtml 文件中使用类似的东西来切换:

但是,是否有可能实现类似:

我想在我的 MVC 应用程序中使用这两者,其中角色与许多权限相关联,并且权限也可以单独授予用户。

一种方法是覆盖 System.Security.Principal 和 System.Security.Identity,并在 Global.asax Application_AuthenticateRequest 方法集中:

然后在 cshtml 文件中使用:

这种方法的问题是我必须在需要检查权限的任何地方都对 MyIdentity 进行强制转换。

有没有更好更有效的方法来做到这一点?我的目标是 MVC3 或 MVC4。

--

编辑:

根据 DavidG 的建议,我开始研究扩展方法。这就是我想出的:

我该如何使用它?在一些示例中,我看到人们更改他们的 web.config - 尝试过 - 或干预控制器和 controllerFactory 以及 global.asax 代码。到目前为止,我还没有在我的 cshtml 文件中使用 MyIdentity。

--

编辑2:

更多进展:我在这里使用了说明:http ://rizzo7.blogspot.fi/2012/04/mvc-30-razor-custom-principal-and.html

得到它 - 有点 - 工作,现在我可以使用如下语法:

但是,在 Visual Studio 中,我收到一条错误消息:

System.Security.Principal.IPrincipal'不包含'MyIdentity'的定义,并且找不到接受'System.Security.Principal.IPrincipal'类型的第一个参数的扩展方法'MyIdentity'(您是否缺少 using 指令或装配参考?)

在我的视图的 Web.config 中,我有:

尽管出现错误,该项目仍可正确编译和运行。每次可见性检查都会出错时,开发和调试会很痛苦。对此我能做些什么吗?

--

编辑-决赛!

谢谢大家,我会回答我自己的最后一个问题;只需要确保 cshtml 看到扩展类的命名空间。:)

我标记了 DavidG 的答案,因为它让我从正确的地方进行搜索,并给了我最需要的东西。谢谢!

0 投票
1 回答
12017 浏览

asp.net - 如何在不使用角色的情况下使用 ASP.NET WebAPI 实现基于声明的授权?

我有一个使用声明的 ASP.Net WebAPI 2 应用程序。声明存储为标准 Identity2 AspNetUsers 表中的两个附加列:

我已经像这样修改了 ApplicationUser 类:

在我的注册方法中,我为 SubjectId 添加了新数据:

有人可以帮助告诉我现在如何在控制器级别以及在方法级别基于此 SubjectId 限制对控制器的访问,类似于以下内容:

几个月来,我一直在寻找一个例子,但除了对 ThinkTexture 产品的一些参考和以下链接之外,我什么也没找到

更新:

0 投票
1 回答
1686 浏览

c# - User Role/Authorization doesn't work in ASP.NET Identity

have this (model builder) code on our DbContext.cs

Everything works fine except for Authorization/User Roles.

After checking all tables I noticed that IdentityUserRoles table creates 4 columns: RoleId, UserId, IdentityRole_Id and ApplicationUser_Id.

I found out that, IdentityRole_Id and ApplicationUser_Id [Foreign Keys] are mapped or used instead of the RoleId and UserId [Primary Keys]. Unfortunately, identity (Id's) data were inserted in RoleId/UserId column and IdenityRole_Id/ApplicationUser_Id are NULL by default.

Please help.

My Code:

0 投票
0 回答
283 浏览

asp.net - 允许 UserManager.FindAsync() 根据我们的 Active Directory LDAP 服务器对用户进行身份验证

在我的 asp.net mvc4 Web 应用程序中,我执行了以下身份验证机制。要有一个登录屏幕,用户可以在其中输入他们的 AD 用户名和密码,然后我将针对我们的 LDAP 服务器验证用户凭据。我的登录操作方法是:-

在应用程序 web.config 中,我定义了以下 provider ,它们代表我们的 Ldap 连接字符串:-

但现在我正在启动新的 asp.net mvc5.2.2 Web 应用程序,它正在起诉 UserManager 而不是 FormsAuthntication,现在我的新 asp.net mvc5.2.2 中的默认登录操作方法是:-

那么任何人都可以告诉我强制我的 UserManager 针对 Ldap 对用户进行身份验证所需的步骤,就像我对 FormsAuthentication 所做的那样?谢谢

>

0 投票
1 回答
591 浏览

sql-server - 保护基于角色的 Web api

希望你没事,这是我的第一个问题,我真的不知道从哪里开始,所以在这里,

我一直在尝试使用 Microsoft Web api 模板构建一个示例,我必须根据角色授权用户,例如“管理员、版主等......”所以,问题是我不想把所有这些控制器顶部的角色,例如

我认为这不是一个好习惯,因为如果我在我的数据库中创建另一个角色会发生什么?我将不得不修改控制器以添加新的角色 xD,真的很糟糕,不是吗?所以问题是。如何扩展诸如 AuthorizeFilter 之类的类以从数据库中获取角色并使用控制器进行验证?我的意思是如果有一个角色管理员的用户授权它,反之亦然?

另一个问题是如何构建一个伟大的授权过滤器,它可以管理用户是否处于主持人角色但他唯一的权利是使用控制器中的创建操作?

我希望你能帮我举个例子......在此先感谢

附言。对不起我的英语不好