从WebForm调用身份验证的操作方法



我已经根据以下的实现了一个具有基本实现的MVC应用程序

现在,当我使用Ajax从我的WebForm应用程序调用此操作方法时,它没有要求凭据并丢弃401错误。

这是我的ajax函数:

  function testSS()
        {
            $.ajax({
                url: 'http://localhost:52099/Controller/Sample',
                type: 'GET',                  
                success: function (result) {
                    $("#ctl00_cphPageContent_SSlbl12").val(result);
                },
                error: function (xhr) {
                    alert(xhr);
                }
            });
        }

如何调用WebForm项目的身份验证方法?

谢谢!

为了使这项工作,您需要添加一个Authorization标头,其中包含base64编码的登录和密码。

要编码基础64,您可以使用btoa()

var authHeader = window.btoa("login:password");

现在,您可以添加此标头(请参阅$ .AJAX文档)

$.ajax({
    url: 'http://localhost:52099/Controller/Sample',
    headers: { Authorization: authHeader },
    type: 'GET',                  
    success: function (result) {
        $("#ctl00_cphPageContent_SSlbl12").val(result);
    },
    error: function (xhr) {
        alert(xhr);
    }
});

请注意,这不是很安全,因为登录/密码是从客户端知道的,并以易于阅读的方式发送,因此攻击者很容易找到。

如果WebForm页面和MVC操作在同一项目中,并且用户已访问您的网站,则可能应该使用ASP.NET [Authorize]属性:它将检查auth cookie,而不是依靠登录/密码,它更安全。

最新更新