【问题标题】:AngularJs - Displaying username password in urlAngularJs - 在 url 中显示用户名密码
【发布时间】:2016-03-26 04:18:22
【问题描述】:

我有一个带有 Webapi (c#) 的 AngularJs 应用程序。我有一个登录页面,但有时当我单击登录按钮时,它会在 url 中添加用户凭据,这会导致安全问题。

我正在使用 OWIN 进行身份验证。

【问题讨论】:

  • 一些示例代码可能有用
  • 可能是您的表单有 method="GET" 而您没有调用 $event.preventDefault()?

标签: angularjs authentication asp.net-web-api owin form-authentication


【解决方案1】:

我一直在为我的应用程序中的一个类似错误感到困惑。我很困惑,因为我们肯定没有明确地将用户名和密码添加到 URL,而且它只发生在某些情况下 - 不是所有时候。

终于,今天,我深究了。

我发现当您不指定操作或方法时,将表单参数添加到 URL 是默认的 HTML 行为。表单方法默认为 GET,这解释了为什么将参数添加到 URL。

然后我发现在“ng-submit”中为表单元素指定的 Angular 控制器方法根本没有被调用。

当我检查控制台中记录的 Javascript 错误时,我意识到由于在呈现登录页面时引发了未处理的异常,因此未加载 Angular 容器。

我们的具体情况是前端 (Angular) 应用程序无法与后端 (Java) API 通信 - 当我们在后端服务器容器启动之前加载登录页面时。发生这种情况时,我们在初始化期间为从应用程序的数据库加载常量而进行的一些 API 调用失败,并且我们的应用程序常量未在错误函数中正确初始化。这导致抛出“未知提供者”异常,导致 Angular 框架中止初始化,从而导致表单的提交被默认 HTML 行为处理!

所以我建议其他面临这个问题的人看看在初始化你的 Angular 应用期间是否有任何错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2014-10-06
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多