问题标签 [forms-authentication]

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 投票
2 回答
1292 浏览

asp.net - 当我的 Login.aspx 不在应用程序的根目录时,如何使用 ASP.NET 登录控件?

我正在使用ASP.NET 登录控件表单身份验证来获取 ASP.NET Web 应用程序的成员资格/凭据。它不断重定向到我的应用程序根目录中不存在的 Login.aspx 页面。我的登录页面在一个文件夹中。

0 投票
1 回答
6095 浏览

asp.net - 如何防止我的 Login.aspx 页面的 ReturnUrl 参数覆盖我的 ASP.NET 登录控件的 DestinationPageUrl 属性?

我正在使用ASP.NET 登录控件表单身份验证来获取 ASP.NET Web 应用程序的成员资格/凭据。我有一些页面,例如PasswordRecovery.aspx,只有匿名用户可以访问。当我从这样的页面单击我的登录链接时,登录页面的地址栏中有一个ReturnUrl参数:

http://www.example.com/Login.aspx?ReturnUrl=PasswordRecovery.aspx

然后在成功登录后,用户将返回到ReturnUrl参数中指定的PasswordRecovery.aspx页面,他们不再有权访问该页面。

0 投票
3 回答
2799 浏览

asp.net - How do I best handle role based permissions using Forms Authentication on my ASP.NET web application?

I'm using the ASP.NET Login Controls and Forms Authentication for membership/credentials for an ASP.NET web application.

I've got two roles:

  • Users
  • Administrators

I want pages to be viewable by four different groups:

  • Everyone (Default, Help)
  • Anonymous (CreateUser, Login, PasswordRecovery)
  • Users (ChangePassword, DataEntry)
  • Administrators (Report)

Expanding on the example in the ASP.NET HOW DO I Video Series: Membership and Roles, I've put those page files into such folders:

Visual Studio Solution Explorer

And I used the ASP.NET Web Site Administration Tool to set up access rules for each folder.

It works but seems kludgy to me and it creates issues when Login.aspx is not at the root and with the ReturnUrl parameter of Login.aspx.

Is there a better way to do this? Is there perhaps a simple way I can set permissions at the page level rather than at the folder level?

0 投票
3 回答
3448 浏览

asp.net - 如何根据用户权限使用站点地图数据源过滤 TreeView 和 Menu 控件的节点?

我正在使用ASP.NET 登录控件表单身份验证来获取 ASP.NET Web 应用程序的成员资格/凭据。我正在使用站点地图进行站点导航。

我使用 SiteMapDataSource 填充了 ASP.NET TreeView 和 Menu 导航控件。但是非管理员用户可以看到仅限管理员的页面。


凯文庞写道:

我不确定这个问题与您的其他问题有何不同……

另一个问题涉及分配和维护权限。

这个问题只涉及导航的呈现。特别是带有站点地图数据源的 TreeView 和 Menu 控件。


尼古拉斯写道:

在站点地图中添加 role="SomeRole"

那只处理显示问题吗?还是强制执行此类页面权限?

0 投票
5 回答
9257 浏览

asp.net - 绕过表单身份验证自动重定向到登录,如何?

我正在编写一个使用 asp.net-mvc 部署到 iis6 的应用程序。我正在使用表单身份验证。通常当用户试图在没有适当授权的情况下访问资源时,我希望他们被重定向到登录页面。FormsAuth 对我来说很容易做到这一点。

问题:现在我有一个控制台应用程序正在访问一个操作。让此操作响应状态 401 而不是将请求重定向到登录页面的最快方法是什么?

我希望控制台应用程序能够对此 401 StatusCode 做出反应,而不是透明的。我还想保留默认值,将未经授权的请求重定向到登录页面行为。

注意:作为测试,我将此添加到我的 global.asax 中,它没有绕过表单身份验证:


@戴尔和安迪

我正在使用 MVC 预览版 4 中提供的 AuthorizeAttributeFilter。这将返回一个 HttpUnauthorizedResult。这个结果正确地将 statusCode 设置为 401。据我了解,问题是 asp.net 正在拦截响应(因为它被标记为 401)并重定向到登录页面,而不是让它通过。我想绕过对某些 url 的拦截。

0 投票
2 回答
1313 浏览

asp.net - 登录时的条件重定向

我正在使用表单身份验证。我的用户在登录时被重定向到一个页面(用 web.config 编写),但其中一些可能没有访问此默认页面的权限。在这种情况下,我希望他们重定向到另一个页面,但 RedirectFromLoginPage 方法总是重定向到 web.config 中的默认页面。如何让用户登录,然后重定向到取决于某些条件的页面?

0 投票
4 回答
3013 浏览

asp.net - 如何注销多个 asp.net 应用程序?

我有一个主要的 asp.net 应用程序,它是用 asp.net 1.1 编写的。在应用程序下方运行的是几个 2.0 应用程序。要完全注销用户,我可以使用 FormsAuthentication.SignOut 注销 1.1 应用程序还是比这更复杂?

0 投票
2 回答
5991 浏览

c# - Context.User 在 Global.asax.Application_AuthenticateRequest 中分配后失去角色

我在我的 asp.net (3.5) 应用程序中使用表单身份验证。我还使用角色来定义哪些用户可以访问应用程序的哪些子目录。因此,我的 web.config 文件的相关部分如下所示:

根据我所阅读的内容,这应该确保唯一能够访问 Admin 目录的用户将是已经过身份验证并分配了 Admin 角色的用户。

用户身份验证、保存身份验证票证和其他相关问题都可以正常工作。如果我从 web.config 文件中删除标签,一切正常。当我尝试强制只有具有 Admin 角色的用户才能访问 Admin 目录时,问题就出现了。

基于此MS 知识库文章以及提供相同信息的其他网页,我已将以下代码添加到我的 Global.asax 文件中:

但是,当我尝试登录时,我无法访问 Admin 文件夹(重定向到登录页面)。

尝试调试问题时,如果我单步执行请求,如果我在上面标记为 Debug#1 的行处执行 Context.User.IsInRole("Admin"),它会返回 false。如果我在 Debug#2 行执行相同的语句,它等于 true。因此,至少就 Global.asax 而言,角色已正确分配。

在 Global.asax 之后,执行直接跳转到 Login 页面(因为缺少角色会导致 admin 文件夹中的页面加载被拒绝)。但是,当我在登录的 Page_Load 的第一行执行相同的语句时,它返回 false。因此,在 Global.asax 中的 Application_AuthenticateRequest 和受限目录中 WebForm 的初始加载之后的某个地方,角色信息正在丢失,导致身份验证失败(注意:在 Page_Load 中,正确的身份验证票证仍然分配给 Context.User.Id - 只有角色正在丢失)。

我做错了什么,我怎样才能让它正常工作?


更新:我输入了下面的解决方案

0 投票
2 回答
1044 浏览

asp.net - 使用通配符映射时 ASP.NET 表单身份验证超时的最佳解决方法是什么?

我的团队正在开发一个蹩脚的旧网站,大多数页面仍然是 ASP 经典。但是,我们最近迁移到使用 ASP.NET 和通配符映射的表单身份验证。除了一件事之外,一切都运行得非常好:登录用户超时太快了。在查看日志后,似乎人们正好在 20 分钟后超时(这是由于不活动而指定的超时)。

因此,我们的假设是 ASP 经典页面不会触发表单身份验证框架中重置非活动计时器的任何机制。我用谷歌搜索,甚至阅读了大顾的通配符映射帖子,但仍然找不到其他有这个问题的人。所以,1)你见过这个问题吗?和 2) 最好的解决方法是什么?(除了在每个在后台加载哑 .NET 页面的 janky ASP 页面中手动放置一个隐藏框架)

更新slidingExpiration设置为true

另外:我们不能使用永久会话,因为我们需要应用程序在 20 分钟不活动后超时。此外,这个可怕的网站被编写成界面通常存储在页面中。没有一段简单的界面代码可以让 JavaScript 插入其中。我们试图将一些 js 放入一个包含文件中,该文件被我们大约 80% 的页面调用,但这会导致文件下载缓冲区出现一些深奥的问题,因此我们可能不得不尝试不同的策略。谢谢。

0 投票
4 回答
258 浏览

asp.net - FormsAuthentication 对 url 有选择性

有没有办法实现表单身份验证,但仅限于特定的 URL。例如,如果 web.config 意外移动到生产站点,我希望 formsAuthentication 保护 staging.mydomain.com 上的站点,但不妨碍对 www.mydomain.com 的访问。