问题标签 [formsauthentication]

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 回答
1705 浏览

iis - 如何检查是否使用 cookie 执行了用户验证(FormsAuthentication)?

我的 ASP.NET 应用程序中存在验证(身份验证)问题 - 我使用启用了 cookie 的 FormsAuthentication,但是由于安全原因,我被迫还使用另一个外部授权源(基于用户名/密码组合为用户提供“会话ID")

当用户使用他的用户名/密码凭据登录(因此,获得 sessionID)时,应用程序工作正常。但是,由于启用了 cookie,登录页面可能会被“跳过”(用户被重定向到 default.aspx)并且他不会获得正确的 sessionID。

我的问题是是否有可能检查用户是否

a) 来自登录页面(因此,已重定向到 default.aspx)

或者

b) formsAuthentication 是基于 cookie 数据执行的,而不是基于用户名/密码

0 投票
1 回答
1775 浏览

c# - 如何使用 Active Directory 组保护 Web 应用程序?

很抱歉这个基本问题,第一次在 C# 中使用 Web MVC4 ...

我正在为我用 C#/SQL 编写的应用程序创建一个 Web 界面。我已经能够将 MVC4 框架附加到 SQL DB。现在我想根据 AD 中的组成员身份来确保人们可以做什么。我的 web.config 中的身份验证设置为“Windows”,它正确显示了我登录时使用的 User.Identity.Name。所以我知道它正在拉起当前登录的用户。此外,对于 android 或 ipad 设备,我需要能够验证活动目录域之外的用户。不过,我还没有走那么远……在大多数情况下,如果可能,我想自动验证登录用户,然后提示输入用户名/密码(如果不存在)。

好的,我也已经知道如何在 AD 中为用户提取组成员身份。但是我需要运行该 AD 查询并将该信息存储在可以在每个页面上访问的某个位置。然后在每个页面上我如何访问该变量?

例如,如果他们无权访问菜单选项,我不想显示它,因此需要使用变量来显示或不显示受保护的菜单选项。另外,我认为我还需要在网页上添加该安全性,这样如果有人试图手动访问那里,他们就无法访问。

我假设出于安全原因我不想使用会话变量..

在过去使用 Adob​​e Flex 时,我使用单例来管理会话状态。我在那里进行了搜索,人们说这在 C# 中可能不是一个好主意。反正这样的例子不多。。。

你在做什么?

0 投票
1 回答
491 浏览

c# - FormsAuthentication 是我没有通过用户,但我是

我有这个登录方法:

当我到达线路FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);时,我收到此错误:

System.InvalidOperationException:未提供用户名。在 ClientCredentials 中指定用户名。

服务器堆栈跟踪:在 System.ServiceModel.ClientCredentialsSecurityTokenManager.CreateSecurityTokenProvider(SecurityTokenRequirement tokenRequirement, Boolean disableInfoCard) 在 System.ServiceModel.Channels.HttpChannelFactory.CreateAndOpenTokenProvider(TimeSpan timeout, AuthenticationSchemes authenticationScheme, EndpointAddress target, Uri via, ChannelParameterCollection channelParameters) 在 System.ServiceModel。 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.CreateAndOpenTokenProviders(TimeSpan timeout) 在 System.ServiceModel.Channels.HttpChannelFactory.CreateAndOpenTokenProvidersCore(EndpointAddress to, Uri via, ChannelParameterCollection channelParameters, TimeSpan timeout, SecurityTokenProviderContainer& tokenProvider, SecurityTokenProviderContainer& proxyTokenProvider) 在 System.ServiceModel。Channels.HttpsChannelFactory.HttpsRequestChannel.OnOpen(TimeSpan timeout) at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 在 System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade) 在 System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout) 在 System. ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 在 System. ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)

在 [0] 处重新引发异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 在 SuburbanCustPortal.SuburbanService 的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 ISuburbanService.RequestCustomersForAccount(String customerloginname) at SuburbanCustPortal.Controllers.AccountController.LogOn(LogOnModel model, String returnUrl, String corpid) in C:\work2\Doozer Software\Suburban\SuburbanCustPortal\Controllers\AccountController.cs:line 112

这段代码一次就可以找到,我回过头来将它与它工作时的代码进行比较,除了日志记录发生了变化,我没有看到任何其他内容。

这是我添加的日志记录:

正如您从日志中看到的那样,自从我通过了此检查后,我已使用用户登录:

此外,我可以在本地计算机上运行此代码,并且不会出错。这一切都针对同一个数据库,本地和发布。

有人看到我的问题是什么吗?

0 投票
0 回答
96 浏览

asp.net-mvc - 在 ASP.NET Framework 4 Forms Auth 中使用电子邮件作为用户名

我想在使用 Framework 4.5 的 MVC 4 应用程序中使用内置的表单身份验证。

但是我似乎无法覆盖用户名字段 - 即使我编辑帐户模型并将用户名设置为 255 Maxlength 它仍在创建最大为 56 的表 - 因此我不能使用电子邮件地址密码。

我已经这样装饰了 UserProfile:

但它不起作用。

0 投票
2 回答
1078 浏览

asp.net - 在 Firefox 和 Chrome 中不遵守 MVC3 FormsAuthentication cookie,在 IE 中有效

我难住了。我有一个 MVC3 应用程序,它使用 FormsAuthentication 和自定义令牌(存储一些额外的用户数据)。它适用于 IE。但是,在 Firefox 和 Chrome 中,不遵守 cookie。

Fiddler 中的检查表明,登录后 cookie 在响应中发送到客户端,但在客户端的后续请求(登录后加载主页)中,cookie 不会发送回服务器。

我的代码:

并获取 cookie:

以及 Auth 设置的 web.config:

我查看了 Firefox 和 Chrome 浏览器,但看不到任何关闭 cookie 的地方。

起初我认为这可能是在 localhost 上开发的问题,所以我部署到了培训服务器。同样的故事 - 适用于 IE,不适用于 Chrome 或 Firefox。

有什么线索吗?

更新

我的一位同事能够使用 Chrome 访问它,并且对他有用。所以我不得不相信这是我的 Chrome/Firefox 的错误。此外,我在 VPN 上并在我的开发机器中使用远程桌面。这会导致问题吗?

0 投票
1 回答
110 浏览

asp.net - Response.Redirect 未评估

我的 Default.aspx 页面上有以下用于登录的 ajax 脚本

和以下 FormAuth

问题是 Response.Redirect("secured/") 不起作用。

任何帮助将不胜感激。

0 投票
1 回答
132 浏览

silverlight - 在整个 MVVM Silverlight 应用程序中持久化 FormsAuthentication 用户

我需要退后一步并重新开始...我想根据登录的用户通过我的 ViewModel 在组合框中加载值。我正在使用 FA 这是最好的方法吗?我可以直接从 ViewModel 访问 cookie 吗?

0 投票
2 回答
1091 浏览

forms-authentication - 通用处理程序 ashx 中的 FormsAuthentication.SetAuthCookie

我有一个通用处理程序,我想根据一些查询字符串自动登录。

但是后来我设置了 FormsAuthentication.SetAuthCookie(user.Name, false),但是 HttpContext.Current.User.Identity.IsAuthenticated 返回 false,由于 web.config 中设置的限制,我无法重定向。

那么如何在 .ashx 文件中设置 FormsAuthentications 呢?

0 投票
1 回答
959 浏览

asp.net - 可以让 iisnode 下的 NodeJS 应用程序使用 ASP.NET FormsAuthentication 进行身份验证吗?

1) 我们有一个需要在 IIS 7.5/Win2k8 R2 下托管的 NodeJS 应用程序。
2) 我们有其他应用程序已经使用 ASP.NET FormsAuthentication。3) 将使用 NodeJS 应用程序的用户与现有应用程序的用户是相同的用户。

因此,我们将 FormsAuthentication 配置设置放在 web.config 中,IIS 正在读取它:

[ IIS > 站点 > {iisnode-site} > 身份验证] - 还不能发布图片!

但是,它完全忽略了配置 - 所以我认为可能在 FormsAuthentication 模块之前调用了 iisnode 模块,但是当我查看模块列表(有序视图)时,它在该站点的底部列出了 iisnode,而 FormsAuthentication 模块在上面列出iis节点。

这甚至可能吗?我在另一篇文章@Intercept requests for iisnode with HttpModule上看到,这可能是解决方法,但这种方法意味着我们需要滚动一个 XHR 标头代理(各种)——我们可以这样做,但作为最后的手段。

0 投票
0 回答
2387 浏览

asp.net - Formsauthentication.RedirectFromLoginPage 不断循环

这是我最后一个问题的延续(质量中心授权之上的 ASP.net 自定义成员资格
开发 asp.net 应用程序以提供与惠普质量中心 (QC) 的自定义接口。它的登录页面将使用 QC'a API 来验证用户。还有一个 SQL 数据库,我在其中存储已注册到我的应用程序的 QC 用户(只需将 QC 用户 ID 存储在 DB 中,而不是密码,密码验证是使用 QC API 完成的)。

就像在 QC 中一样,我的登录页面有 2 组控件,
1. 用户 ID 和密码文本框 - 用户输入用户 ID 和密码并点击“验证” - 点击时,我检查用户是否在我的数据库中,如果找到,提供的凭据是使用 QC API
2 进行验证。QC 域和项目下拉列表 - 一旦用户在步骤 1 中通过身份验证,用户有权访问的 QC 域和项目将使用 QC API 拉出并填充到相应的下拉列表中。
用户选择域/项目并单击登录按钮。单击登录按钮时,我想设置 Set FormAuthentication cookie 并将用户重定向到一个页面,例如 - 'Authenticated' 目录中的 welcome.aspx。

问题——

在步骤 2 中单击“登录”按钮后,当我调用“ FormsAuthentication.RedirectFromLoginPage ”时,它会返回登录页面,而不是去welcome.aspx。

下面是我的 web.config:

以下是 login.aspx 的 Login 按钮点击后的代码:

过去一天挠头想弄清楚出了什么问题,或者我是否错过了任何事情,但到目前为止没有成功,非常感谢任何帮助。