问题标签 [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.
angularjs - 将 Asp.net Identity 2 web api 从项目中解耦?
我按照这样的教程创建了一个 Asp.net Web API 2项目。我已经扩展了身份模型,以便像这样为我的用户使用 int 键。现在我被困在如何将这个“Auth API”与我的核心项目完全分离。我知道拥有单个 DbContext 和拥有多个 DbContext 的许多优点/缺点。我现在的路径使 Auth 项目与包含所有其他业务实体和逻辑的其他“核心”项目完全分开。这是我卡住的地方。
我有一个 AngularJs 前端。我可以调用 Auth API 来获取访问令牌、刷新令牌、登录、退出等。然后我调用我的“核心 API”并在授权标头中传递不记名令牌。我查看提琴手,看到它被正确发送。问题是我在核心 API 控制器中的用户从未经过身份验证,并且我总是收到 401 响应。当“核心”API 与“Auth”API 完全解耦时,如何在“Core”API 中授权用户?我虽然只是发送不记名令牌就可以......我完全错过了什么吗?
c# - 在没有 Windows 身份验证的情况下获取用户的 Windows 用户名
我们有一个面向内部的 (C#/MVC/IIS7) 应用程序,要求用户不必输入凭据,但我们需要网络/Windows 用户名来识别当前用户是谁。
有没有办法做到这一点?谢谢!
c# - Views 和 ViewModels 如何在 MVC 5 中利用基于声明的授权?
在我的项目中,我使用基于声明的授权和身份验证实现了 ASP.NET Identity 2.x。我添加了对声明授权属性的支持,如此处所述。
以下是我提出的允许/禁止对员工进行 CRUD 的声明。
一个动作看起来像这样:
我不太明白的是如何在视图及其视图模型中使用这些声明。例如,有一个显示员工的视图,它是一个简单的网格。然后是用于编辑和创建员工的视图。
视图和视图模型现在应该能够根据用户的声明隐藏或显示保存/更新/删除按钮。
意见的方法:
如果存在 ReadEmployee 声明,则索引 ->应显示所有员工,否则该视图仍应可访问,但会显示消息“无查看员工的权限”。
创建/编辑 ->用户应该仍然能够导航到这些视图,但“创建”/“保存”按钮不应该是可见的。
删除 ->应隐藏所有“删除”按钮。
底线是,视图应该是可访问的,但创建/保存按钮应该被隐藏。
怎么可能呢?
*更新/我的解决方案*
这就是我最终做到的方式。按照 Derek 的建议,我使用了基于操作/资源的身份验证。除了 ASP.NET Identity,我还实现了 IUserClaimStore 接口以从数据库中获取声明。
视图和视图模型 (!) 不包含 CanRead、CanWrite 之类的任何内容! 我正在使用 KendoUI 并为按钮创建了一个扩展方法。
在扩展方法中,我可以访问自定义 ResourceAuthorizationManager(参见 Dominik Baier 的博客)。所以在创建按钮时,我可以调用 HttpContaxtBase.CheckAccess(...) 来确定按钮是否应该启用/可见。
我唯一需要的是一种方法来告诉扩展方法要检查访问的操作/资源组合。
剃刀示例:
这就是视图中显示(或不显示)“创建”按钮并指向员工控制器的创建视图所需的全部内容。很干净,恕我直言。
asp.net - 使用两因素身份验证(如银行)保护 ASP.NET 2.0 中的代码对授权用户
我们正面临着任何帮助将不胜感激的情况。
我们使用 ASP.NET 2.0 技术
我们有一些受角色保护的网页。因此,在进入应用程序之前,您需要使用不同的可用凭证(证书、表格等)进行身份验证。问题来了,我们需要第二个身份验证因素,比如银行使用的那个(例如 SMS 代码或类似的)。作为第一种方法,我们只想保护一些代码片段,但如果这不可能,一个可能的解决方案是保护一些完整的网页(在执行之前要求第二次身份验证)。
- 关于如何执行此操作的任何建议?
- 可以只保护代码片段吗?
感谢大家!
asp.net - 为 Windows 窗体或 WPF 独立应用程序实现 ASP.NET 窗体身份验证和授权
我想为与 ASP.NET WCF(和 SOAP)Web 服务通信的 Windows 窗体或 WPF 应用程序实现 ASP.NET 窗体身份验证和授权过程。
使用 Fiddler,我研究了 Silverlight 在登录/注销过程中如何与其 WCF RIA 服务 Web 服务通信,据我所知,这种通信只是一组 POST 和 GET HTTP 调用。
据我了解,实际的身份验证和授权通过 ASP.NET 成员资格和角色提供程序发生在 WCF 服务端 - 我知道如何通过代码处理这个问题。
我不确定的是什么可能是最高级别的 System.Net 类集及其在 WinForms/WPF 应用程序和 ASP.NET WCF 之间实现 ASP.NET 表单身份验证和授权的方法(/和如果可能的话还有 SOAP)Web 服务,在登录后通信会话保持活动状态,ASP.NET 服务/应用程序 cookie 对我来说尽可能透明地在这里和那里传输(IOW 没有太多低级 C#/.NET 框架编程)。System.Net.WebClient 是否足以完成我的任务?你知道任何可以使用的简单开源 C# 解决方案吗?
asp.net-mvc - ASP.NET Microsoft 身份问题
我有使用 Microsoft Identity 成员资格的 asp.net mvc 项目。我的角色是:管理员、代理、客户、内容编辑、初级。初级角色是最后添加的,我无法使用它登录。这是登录后调用的控制器:
据您所见,根本没有授权属性,如果我手动输入 url 逻辑我需要进入仪表板,但我被重定向到登录页面。
这是我的登录操作:
如果有人遇到过这种问题,我期待收到您的来信。
我再说一遍,这仅适用于初级角色,不适用于系统中存在的其他角色。
_objUserService 包含管理用户的方法,objRoleForCurrentUser 的值为“Junior”。用户已登录,但我没有重定向到仪表板,而是重定向到了登录页面。
这是登录代码。它是用于登录的默认 asp.net 代码:
谢谢你。
c# - 使用具有安全组 SID 的 C# 授权角色
我一直在使用 .NET MVC 授权角色功能。我将 SG 的名称从“A”更改为“B”。由于已经 24 小时,我仍然没有看到名称更改通过 AD 服务器传播,我决定改用 SG 的 SID。
所以,我从这个出发:
对此:
1)SG名称改变时SID会改变吗?
2) 当我使用 SG SID 而不是名称时,授权是否仍然安全?我对此进行了测试,我可以看到它验证了访问,但由于我没有阅读任何有关使用 SID 的文档,所以我想确认一下。
c# - 在 asp.net mvc 中管理两个或多个表的 Roleprovider
我正在使用asp.net mvc4
&创建一个网站,EF6
其中有两个管理员和用户表,我想为每个人设置授权角色。到目前为止,我已经成功地设置了角色,但如果我有两个或更多模型users
,我不知道如何在我的自定义类中设置角色。RoleProvider
这是我的代码,
如何设置两个或多个模型并在GetRolesForUser
方法中返回它们的角色值?非常需要这个帮助。谢谢。
asp.net - 单点登录,两个具有自己身份表的数据库
客户有一个使用 .net 4.0 和 MVC 的网站。该网站有自己的数据库和身份表。
我们为客户端实现了一个与网站及其数据库完全分离的 Web 应用程序。应用程序数据库保存用户所做的会话信息以及与用户相关的许多其他信息。用户与 Web API 交互以操作数据,这些操作被审核并映射到管理员可以运行报告的会话。当用户通过应用程序本身注册并拥有自己的登录页面时,这一切都可以正常工作,这就是最初实现的方式。
问题是现在客户想要使用网站登录页面进行单点登录。客户端希望从应用程序中删除登录页面,并允许网站的每个当前和未来用户访问 Web 应用程序。
-我目前所知道的
- 通过网站登录的每个用户都将在应用程序中拥有基本用户角色
- 生成数据库时将生成具有管理员角色和超级管理员角色的帐户
我的问题是:
是否可以使用两个具有自己身份表的独立数据库来实现单点登录?如果这不是最好的方法,因为应用程序本身根据特定用户角色拥有自己的授权,并且这些用户已在应用程序数据库中扩展。如果可能的话,如果现有用户还没有进入应用程序数据库,那么最好的方法是什么。
任何帮助我指出正确方向的帮助表示赞赏。
谢谢,
asp.net-web-api2 - AuthorizationFilterAttribute 的 HTTP 状态码错误
我在下面为我的 WebAPI 2 应用程序创建了一个自定义 AuthorizationFilterAttribute:
它做了它应该做的事情:具有正确标题的用户看到结果,其他人得到一个例外。但是 - 我怎样才能返回一个HTTP Error 401 Unauthorized
?
只要我不抛出异常 - 正常的执行流程就会继续。当然,我不必实现全局异常处理程序,对吧?