【问题标题】:passing credentials not working传递凭据不起作用
【发布时间】:2014-11-04 05:29:14
【问题描述】:

我正在尝试通过传递凭据来进行 json 调用。如果用户已经使用 Sql Membership 登录到系统,我怎样才能通过凭据而不得到这个:

这里是调用web.api的代码:

注意:正在从跨域进行调用:即 www.project.com -> api.project.com

var url = 'http://api.project.com/LookUps/uploadtypes?callback=?';

$.ajax({
    type: 'GET',
    url: url,
    async: true,
    xhrFields: {
        withCredentials: true
    },
    jsonpCallback: 'handler',
    contentType: "application/javascript",
    dataType: 'jsonp',
    success: function (json, textStatus, jqxhr) { console.log(jqxhr.responseText); },
    error: function (json, textStatus, jqxhr) { console.log(jqxhr.responseText); }
 });

编辑:

当身份验证被禁用时,我仍然可以登录。窗口认证设置还有其他地方吗?

【问题讨论】:

  • 弹出窗口用于 Windows 身份验证。我认为您需要为 iis 服务器上部署的 api 项目禁用 windows 身份验证。
  • 是否要启用 Windows 身份验证?
  • 我需要启用的基于表单的身份验证。我正在尝试将凭据从我的 web 应用程序传递到 web api 项目。即使我作为凭据传递,它也会要求输入用户名和密码。
  • 您的表单身份验证 cookie 上的域是什么?

标签: jquery ajax security asp.net-web-api jsonp


【解决方案1】:

为防止此弹出窗口,您必须将您的 URL 更改为关注。

var url = 'http://username:password@api.project.com/LookUps/uploadtypes?callback=?';

替换用户名 - 用实际用户名 和密码与实际密码。

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 2019-03-12
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多