问题标签 [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 回答
396 浏览

asp.net - 使用 mysql 基于用户的类(角色/成员)进行授权

Web.config以前为了让某些用户访问某些页面/文件夹而进行编辑,例如:

这是非常聪明和直接的。

现在我需要允许一用户访问一些文件夹。不幸的是,对于单个用户来说,这似乎并不容易。我阅读了有关角色成员的信息,但我只找到了有关使用 MSSQL 数据库实现它的官方文档。

使用 MySql 数据库设置基于角色/成员的授权最直接的方法是什么?

0 投票
1 回答
27908 浏览

asp.net-mvc - 如何锁定 ASP.NET MVC 中的路径?

我第一次使用 MVC 4 来检查与 MVC 3 相比发生了哪些更改/添加/等。

首先,我创建了一个空白的 MVC 4 Web 应用程序并从头开始构建。

我注意到在 MVC 4 中不同的第一件事是以下 web.config 设置对网页的可访问性没有影响:

回到 MVC 3,上面的授权设置将拒绝所有匿名用户访问站点内的任何内容。但是,如果我将相同的设置添加到 MVC4 Web.config 文件,匿名用户可以自由支配她/他选择的 URL。

我需要在 MVC 4 中做什么才能像在 MVC 3 中那样锁定所有路径?

0 投票
0 回答
388 浏览

asp.net - 使用 ASP.NET 保护静态文件的困难

(根据 Menno 的反馈更新)

我请求使用 ASP.NET 授权保护站点其余部分的安全,以保护一个充满静态文件(htm、pdf 等)的文件夹。该文件夹位于网络的根目录中。普通的 ASP.NET 授权适用于 Web。唯一的问题是保护这个特定的文件夹。

我正在尝试重新配置 ASP.NET 身份验证模块,以便使用我的应用程序根目录下的 web.config 中的以下内容为我的“文档”文件夹中的所有文件调用它们:

没有效果。

如果我将相同的 system.webServer 节点放在 Documentation 文件夹中的 web.config 中——没有效果。

仅当我将相同的 system.webServer 节点放在 Documentation 文件夹中的 web.config 中,然后将 Documentation 文件夹转换为应用程序时,它才会生效。

我没有看到任何信息表明您可以在位置节点内成功使用 system.webServer 节点,但我也没有看到任何信息表明对位置节点内使用的内容有任何限制。

应用程序池正在运行 4.0,集成模式。关于我做错了什么有什么建议吗?

0 投票
1 回答
491 浏览

asp.net - 我可以将 Excel 文件放在我的 Web 应用程序中,并受 ASP.Net 授权的控制吗?

我正在寻找一种仅允许特定用户访问某些 Excel 文件的方法。

这是场景:

我有一个 ASP.Net 4 应用程序,它是表单身份验证。我希望能够让许多用户访问不断增长的 Excel 文件集。每个用户都可以访问其中一组。

我可以很容易地安排一个导航页面,它只会显示指向允许用户查看的 Excel 文件的超链接。但是,通过猜测 URL,也可以检索其他人的文件。

我尝试了以下场景:为所有 Excel 文件设置一个基本文件夹,其中每个用户都有一个文件夹。在每个文件夹中,都会放置一个 web.config 文件。在主文件夹上,它包含以下内容:

每个子文件夹:

这适用于文件夹内的任何 .aspx 文件,但不适用于其他类型的资源,例如我的 Excel 文件。始终允许访问这些内容。我认为这是由于这些文件不是由 ASP.Net 工作进程处理的事实引起的。

什么是只安排正确用户访问的好方法?我正在考虑将 Excel 文件存储在 ASP.Net 应用程序的虚拟目录之外,并编写一些 ServeExcel.aspx 页面,该页面将使用响应流输出 Excel 文件。有没有更好的方法来做到这一点?


另外,针对BrOSs的评论

我阅读了“演练:创建具有会员资格和用户登录的网站”并创建了一个测试站点。我没有从一个空的项目模板开始,而是从一个 ASP.Net Web 应用程序开始,而不是遵循所有步骤,并赶上了步骤“创建仅限成员的页面”中的演练。我跟进并包括步骤“添加新用户”。我创建了两个用户,用户“member”,授予对文件夹 Membership 的访问权限,另一个用户“visitor”,拒绝访问此文件夹。除了教程中的步骤之外,我还添加了访问规则“拒绝用户”。

运行 Web 应用程序时,成员页面 ~\MemberPages\Members.aspx 对“成员”可见,而对“访问者”不可见。

之后,我将文件test.xls放在 MemberPages 文件夹中。令我大吃一惊的是,“访问者”(和匿名用户)也拒绝访问此文件!

2013-01-03 添加的注释:上述保护 Excel 文件的真正原因是我使用了内部 Visual Studio 开发服务器。在服务器上,将使用 IIS,默认情况下 IIS 本身将提供 Excel 文件。我尝试通过修改 ISAPI 过滤器配置来修改 IIS 6.0 和 7.5 的配置,但最后这似乎对错误配置很敏感,所以我应用了 Joe 建议的解决方案。

这与我使用自己的 Web 应用程序的经验有很大不同,我发现项目之间存在显着差异。

我的项目不使用 ASP.Net Membership,而是使用自定义用户表。此外,自定义代码存在于 global.asax.vb 文件中:

注意:Person类实现了 System.Security.Principal.IIdentity 接口。我不确定是否在测试项目中执行了类似的代码,但至少在 Global.asax.cs 或 Login.aspx.cs 文件中没有类似的代码。

我将调试器附加到我的项目中,发现 Application_AuthenticateRequest 对 aspx 文件的每个请求都执行,并且每次都没有 HttpContext.Current.User 。在请求 Excel 文件期间,不会执行此代码,我认为这就是为什么在没有 web.config 授权设置施加的任何限制的情况下提供文件的原因。

我发现了另一篇文章:ASP.NET 中的对象持久性(回发之间),并将深入研究它,看看它可以帮助我。

尽管如此,由于我正在编写代码,为许多项目使用的一种框架 ASP.Net 应用程序添加一些自定义功能,我认为更改 global.asax 文件将超出可接受的修改范围。因此,我仍在考虑使用 ServeExcel.aspx/ashx 选项。

0 投票
3 回答
7447 浏览

c# - ASP.NET WebApi FormsAuthentication 401(未经授权)问题

我一直在学习 ASP.Net WebApi 中的授权是如何工作的,并且我在另一篇文章(ASP.NET Web API 身份验证)中遇到了 Darin Dimitrov 的回答,我需要一些帮助来理解为什么我会得到 401。

按照 Darin 的代码,我创建了一个 WebApi 项目并添加了以下控制器和模型:

AccountController.cs

用户控制器.cs

登录模型.cs

我创建了一个带有两个按钮和一个标签的 Web 表单应用程序,用于测试目的。

默认.aspx.cs

当我单击按钮并运行 ButtonAuthorizeClick() 时,它会触发 Account 的控制器,然后触发 Users 的控制器,一切都很好。

如果我然后单击 ButtonTestAuthClick(),则会收到 401(未经授权)错误。

当我在 Chrome 或 FireFox 中寻找 ASPXAUTH cookie 时,我没有看到一个,所以我不能 100% 确定为什么 ButtonAuthorizeClick() 有效,以及我需要做什么才能使 ButtonTestAuthClick() 有效。

感谢任何人都可以帮助我。

0 投票
0 回答
198 浏览

asp.net-mvc - 如果在 DynamicGridData 中使用 Authorize 和 HandleJsonexception,如何向 jqgrid 返回授权错误

[HandleJsonException] 和来自 Oleg 答案的代码在 ASP.NET MVC 2.0 中实现 jqgrid 中的搜索

用于在 ASP.NET MVC2 应用程序中向用户显示错误。

DynamicGridData 方法也用 [Authorize] 修饰。页面包含“注销”按钮。

如果用户注销并在浏览器中按下返回按钮,[Authorize] 会导致 ASP.NET 以 html 格式返回登录页面作为 DynamicGridData 结果。

jqgrid 在这种情况下显示奇怪的错误。如何以正确的 json 格式返回错误,例如 [HandleJsonException] 返回其他错误?

出现包含原始 html 的不可读警报框。

ASP.NET 代码中引用了一个

0 投票
2 回答
1559 浏览

ninject - 使用 WebApi 子类化 AuthorizeAttribute 不起作用返回 401?

我将 AuthorizeAttribute 子类化,因此我可以实现令牌身份验证,从而将令牌传递到请求标头中。我还在为 IoC 使用 Ninject。覆盖的 OnAuthorization 方法被调用并验证令牌,但我仍然收到 401。

关于为什么会发生这种情况的任何想法?

TokenAuthorisationAttribute.cs

NinjectWebCommon.cs

0 投票
1 回答
74 浏览

asp.net-membership - 根据选择加载不同的角色

我正在开发一个 ASP.NET MVC 3 应用程序,用户可以在其中为不同的资产类型分配不同的角色。他们能够一次查看属于不同组(资产类型)的资产。

根据正在查看的资产的资产类型,我想更新委托人的角色数组,使其仅具有用户已分配给该资产类型的角色。

我想我会做一个授权过滤器,负责根据正在查看的资产查找用户分配给的角色并将它们加载到角色数组中。这样,角色数组将始终反映他们对正在查看的资产拥有的权限。

然后从视图中,我可以隐藏/显示页面的不同部分,具体取决于它们是否在特定组中(User.isInRole)

这是否是根据资产类型为用户切换角色的正确方法?

0 投票
1 回答
313 浏览

c# - 如何从自定义 SQL“AdminUsers”表中保护管理员的 MVC4 区域

我已经看到了许多使用令牌、roleprovider 和 memberprovider 保护 MVC 应用程序的示例,但没有一个完全适合我的场景。这是我的设置..

  • VS2012 链接到 SQL 2008 R2 使用 EntityFramework 4.3 管理数据。
  • 项目在 IIS 中设置用于基本身份验证,因此所有拥有 empID 的教职员工和学生都可以在内部或外部进行身份验证。其中一些人是管理员,因此他们在管理区域进行管理。
  • 我在我的项目中创建了一个当前没有安全性的“管理”区域,因此任何人都可以键入域/管理员并被重定向到该区域。此区域包含管理员用户 (CRUD)、约会 (CRUD)、设置 (U)、工具和报告功能。adminUser 和约会部分有自己的表,并且 CRUD 按预期工作。

这就是我要问的问题。如何从我的 AdminUsers sql 表中针对“管理员”验证基本身份验证当前用户,然后只允许这些人访问我的管理区域?

谢谢你的时间,克里斯

0 投票
2 回答
511 浏览

asp.net-mvc - ASP.Net MVC 4: Update Profile after Windows authentication only once after login

I have an Intranet application with Windows authentication set for user authentication which works fine, only problem is that I do not want to say 'Hello, mydomain\user!' but use the user's full display name which I find in the Active Directory.

In fact I want to populate the profile with even more details from our domain, the problem is that I only want to do this AD query only once after the user has been authenticated on his first call to the application. I have all the AD and profile things working, but I do not find a good place to put the code so that it is called exactly once after login. I suspect a custom AuthorizeAttribute might be a way... Any help is greatly appreciated. Thanks!!