单用户站点的ASP.NET身份验证

时间:2011-10-19 10:35:07

标签: asp.net web-services authentication jquery

我创建了网站库。我使用从客户端到服务器的web服务的ajax请求,如下所示:

var executeService = function(params, url, callbackSuccess, callbackError, isCache) {
    $.ajax({
            type: "POST",
            url: url,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: params,
            success: callbackSuccess,
            error: callbackError,
            cache: isCache
        });
};

和此:

[WebMethod]
public string GetImagesByCategory()
{
    var imageList = new List<JSONGallery>();
    //...
    return imageList.ToJSON();
}

我想开发管理页面。在此页面上,我想管理网站的内容。只有一个用户可以访问此页面和管理Web服务的方法(添加,删除等)。我最喜欢哪种类型的身份验证?

我会使用Forms身份验证,但如何控制对Web服务的访问?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您仅限制对经过身份验证的用户的访问(并且服务明显位于同一站点上),则可以仅使用表单身份验证。您可以在web.config中设置:

<authentication mode="Forms">
  <forms loginUrl="~/login.aspx" protection="All" timeout="2880" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

这样,只有已登录的用户才有权运行该服务。

如果您想要访问其他页面/目录,可以添加授权规则以允许对这些元素进行开放访问,例如CSS文件或图像。

<location path="assets">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

答案 1 :(得分:0)

您可以使用管理网页的表单身份验证和Web服务的基本身份验证,您可以通过IIS在Web服务上启用基本身份验证。