问题标签 [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 投票
11 回答
646199 浏览

forms - 基于表单的网站身份验证权威指南

版主备注:

这个问题不适合我们的问答格式以及当前适用于 Stack Overflow的话题性规则。对于内容仍然有价值的此类问题,我们通常使用“历史锁定”。但是,此问题的答案得到积极维护,历史锁定不允许编辑答案。因此,已应用“wiki 答案”锁定以允许编辑答案。您应该假设存在通常由历史锁定处理的话题性问题(即这个问题不是 Stack Overflow 的话题性问题的一个很好的例子)。

网站基于表单的身份验证

我们认为 Stack Overflow 不应该只是针对非常具体的技术问题的资源,还应该提供有关如何解决常见问题变体的一般指南。“基于表单的网站身份验证”应该是此类实验的一个很好的主题。

它应包括以下主题:

  • 如何登录
  • 如何退出
  • 如何保持登录状态
  • 管理 cookie(包括推荐设置)
  • SSL/HTTPS 加密
  • 如何存储密码
  • 使用秘密问题
  • 忘记用户名/密码功能
  • 使用nonce防止跨站点请求伪造 (CSRF)
  • 开放ID
  • “记住我”复选框
  • 浏览器自动完成用户名和密码
  • 秘密 URL(受摘要保护的公共URL )
  • 检查密码强度
  • 电子邮件验证
  • 以及更多关于 基于表单的身份验证...

它不应包括以下内容:

  • 角色和授权
  • HTTP 基本认证

请通过以下方式帮助我们:

  1. 建议子主题
  2. 提交关于这个主题的好文章
  3. 编辑官方答案
0 投票
3 回答
6767 浏览

asp.net - IIS 6/ASP.NET Windows 身份验证清单?

我一直无法让我的 ASP.NET 应用程序自动将用户登录到我正在构建的 Intranet 站点。无论是谷歌搜索还是我应用的实验,IE7 总是显示一个登录框。

我在 Web.config 中设置了 Windows 身份验证模式,禁用匿名访问并在 IIS 中配置了正确的默认域,但它仍然要求用户登录,更烦人的是,用户也需要提供域(DOMAIN\auser ),这会导致非技术访问者出现问题。感谢 Zeus 的密码记忆功能。

我不是网络管理员,因此有关 Active Directory 的某些内容可能设置不正确,或者可能只是我遗漏了一些非常简单的内容。请注意,我不想模拟用户,我只需要知道 IPrincipal.Name 属性与我的用户数据库中的有效记录相匹配,从而验证用户对我的应用程序的身份。

为此,拥有一份以这种方式协同工作的 AD、ASP.NET 和 IIS 的所有配置要求的清单将非常有用,作为调试的参考,并有望减少一些用户摩擦。

0 投票
1 回答
23263 浏览

php - 如何使用纯 HTTP 身份验证和 PHP 在 Apache 下获取经过身份验证的用户名?

首先,让我们把安全考虑排除在外。我在 Apache 下使用简单的身份验证,用于一次性、仅供内部使用、非 Internet 连接的 LAN、PHP Web 应用程序。

如何在 PHP 中获取经过 HTTP 身份验证的用户名?

0 投票
6 回答
20945 浏览

.net - 如何将 SSL 添加到使用 httplistener 的 .net 应用程序 - 它*不会*在 IIS 上运行

最近的粗体编辑 我正在使用 .netHttpListener类,但我不会在 IIS 上运行此应用程序,也不会使用 ASP.net。这个网站描述了实际使用什么代码来实现与 asp.net 的 SSL,并且这个网站描述了如何设置证书(虽然我不确定它是否只适用于 IIS)。

类文档描述了各种类型的身份验证(基本、摘要、Windows 等)——它们都没有提到 SSL。它确实说如果使用 HTTPS,则需要设置服务器证书。这将是一个单行属性设置并HttpListener计算其余部分吗?

简而言之,我需要知道如何设置证书以及如何修改代码以实现 SSL。

虽然在我尝试访问 HTTPS 时没有发生这种情况,但我确实注意到我的系统事件日志中有一个错误 - 源是“Schannel”,消息的内容是:

尝试访问 SSL 服务器凭证私钥时发生致命错误。从加密模块返回的错误代码是 0x80090016。

编辑:
到目前为止采取的步骤

  • 在 C# 中创建了一个适用于 HTTP 连接的有效 HTTPListener(例如“ http://localhost:8089/foldername/
  • 使用 makecert.exe 创建证书
  • 使用 certmgr.exe 添加了要信任的证书
  • 使用 Httpcfg.exe 监听测试端口(例如 8090)上的 SSL 连接
  • 通过 listener.Prefixes.Add( https://localhost:8090/foldername/ ")将端口 8080 添加到 HTTPListener ;
  • 在浏览器中测试 HTTP 客户端连接,例如 ( http://localhost:8089/foldername/ ") 并收到正确的返回
  • 在浏览器中测试了一个 HTTPS 客户端连接,例如(http://localhost:8090/foldername/)并收到“数据传输中断”(在 Firefox 中)
  • Visual Studio 中的调试表明,当 HTTPS 连接启动时,接收请求的侦听器回调永远不会被命中 - 我看不到任何可以设置断点以更早捕获其他内容的地方。
  • netstat 显示监听端口对 HTTPS 和 HTTP 都是开放的。尝试连接后,HTTPS 端口确实会进入 TIME_WAIT。
  • FiddlerHTTPAnalyzer没有捕捉到任何流量,我猜它在这个过程中还远远不够显示在那些 HTTP 分析工具中

问题

  • 问题可能是什么?
  • 是否有一段.Net 代码我丢失了(这意味着我必须在 C# 中做更多事情,而不是简单地向指向 HTTPS 的侦听器添加一个前缀,这就是我所做的)
  • 在某处错过了配置步骤?
  • 我还能做些什么来分析问题?
  • 系统事件日志中的错误消息是否表明存在问题?如果是这样,它将如何修复?
0 投票
12 回答
30913 浏览

asp.net - 我应该使用用户名还是用户 ID 来引用 ASP.NET 中经过身份验证的用户

所以在我的简单学习网站中,我使用了内置的 ASP.NET 身份验证系统。

我现在添加一个用户表来保存他的 zip、DOB 等内容。我的问题是:

  1. 在新表中,键应该是用户名(字符串)还是用户 ID,即他们在asp_ tables.
  2. 如果最佳做法是使用那个丑陋的指南,有谁知道如何获得它?System.Web.HttpContext.Current.User.Identity.Name它似乎不像名称( )那样容易访问
  3. 如果您建议我既不使用(不是由 ASP.NET 身份验证提供的 guid 和 userName 字段),那么我该如何使用 ASP.NET 身份验证呢?我喜欢的一种选择是使用用户的电子邮件地址作为登录名,但是如何让 ASP.NET 身份验证系统使用电子邮件地址而不是用户名?(或者那里无事可做,只是我决定我“知道” userName 实际上是一个电子邮件地址?

请注意:

  • 我不是在问如何在 .NET 中获取 GUID,我只是指asp_ tables作为 guid 中的 userID 列。
  • 用户名在 ASP.NET 身份验证中是唯一的。
0 投票
10 回答
6770 浏览

authentication - 登录ID用什么?

我们正处于对我们的产品进行重大改写的早期设计阶段。目前,我们的客户主要是企业。我们管理帐户。每个帐户的用户名都在自己的命名空间中,但这意味着我们不能在服务器之间移动资产。

我们想移动到单个命名空间。但这带来了唯一用户名的问题。

那么最好的主意是什么?

  • 电子邮件地址(带验证)?
  • 唯一的字母数字字符串(“johnsmith9234”)?
  • 我们应该看看 OpenID 吗?
0 投票
2 回答
2863 浏览

authentication - OpenID 属性交换 - 我应该使用它吗?

我的网站将仅使用 OpenID 进行身份验证。我想通过属性交换来拉取用户详细信息,但是属性交换似乎给 StackOverflow 带来了很多痛苦。

行业现状如何?是否有任何 OpenID 提供商在属性交换方面做得不错?

我应该完全避开 OpenID 属性交换吗?

如何处理对功能的不一致支持?

0 投票
0 回答
7082 浏览

ruby-on-rails - Ruby on Rails 中的 OpenID 身份验证

我是 Ruby on Rails 的新手,但我创建了几个小应用程序。无论如何,我对 OpenID 真的很感兴趣,我想在 Rails 应用程序中实现 OpenID 身份验证以及一些 Sreg 的东西。我所做的所有研究都提出了已过时或对我不起作用的文章。由于我对 Rails 很陌生,我很难调试问题,所以......

在 Rails 中实现 OpenId 的最佳方法是什么?

0 投票
2 回答
1822 浏览

php - 仅接受来自经过身份验证的用户的某些 ajax 请求

确保仅从经过身份验证的用户接受对某些页面的某些 ajax 调用的最佳实践是什么?

例如:

假设我有一个名为blog.php的主页(我知道,创造力比比皆是)。我们还假设有一个名为delete.php的页面,它查找参数post_id,然后从数据库中删除一些条目。

在这个非常人为的示例中,blog.php 上有一些机制,它通过 ajax 向 delete.php 发送请求以删除条目。

现在这个机制只对 blog.php 上经过身份验证的用户可用。但是有什么办法可以阻止某人用一堆随机数调用 delete.php 并删除站点中的所有内容呢?

我做了一个快速测试,在 blog.php 中设置了一个会话变量,然后对 delete.php 进行了 ajax 调用,以返回是否设置了会话变量(它不是)

处理这类事情的公认方法是什么?


好的。我第一次尝试这个时一定是疯了。

我刚刚做了另一个测试,就像我上面描述的那样,它工作得很好。

0 投票
5 回答
1160 浏览

.net - 通过 WCF 进行身份验证的最佳方式是什么?

通过 WCF 实现身份验证的最佳方法是什么?

我宁愿不使用 WS-*,因为它需要独立于传输。

我应该“自己动手”吗?是否有任何指导(文章/博客文章)?
或者有什么方法可以(而且我应该)在服务器端使用内置的 ASP.NET 成员资格和配置文件提供程序?