C# JSON与web服务安全
我知道有很多类似的问题,但我有超过1个,我真的想知道答案和具体问题的建议请 我创建了一个ASP.NET应用程序,它通过web服务访问(读写)SQL Server数据库 我使用JSON调用Web服务来填充Javascript图形/图表 由于应用程序的要求,我使用了大量JSON 问题:C# JSON与web服务安全,c#,asp.net,json,web-services,C#,Asp.net,Json,Web Services,我知道有很多类似的问题,但我有超过1个,我真的想知道答案和具体问题的建议请 我创建了一个ASP.NET应用程序,它通过web服务访问(读写)SQL Server数据库 我使用JSON调用Web服务来填充Javascript图形/图表 由于应用程序的要求,我使用了大量JSON 问题: 我使用表单身份验证,所以我说只有成功登录的用户才能查看网页源代码,对吗 如果是,那么登录的用户将能够看到我的服务路径,并可以轻松访问特权信息。我曾想过在每个[WebMethod]中添加一个参数(用户名)来验证请求,这
提前感谢您提供的任何建议/帮助或链接我将避免在ajax请求中传递用户名和/或密码,尤其是在没有SSL保护的情况下。使用Forms authentication提供的身份验证cookie,并在服务器端进行检查 我使用的一个快捷方式是创建一个空的.aspx页面来接收ajax请求。如果你有母版页,一定要把它删掉。页面没有标记,但可以读取页面加载中的请求变量、用户信息、会话变量等。然后响应。编写所需的JSON输出。大概是这样的: MySearch.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
// Check if user is logged in, and return JSON result of search
if (User.Identity.IsAuthenticated)
{
string json = MySearch(Request["Search"], Session["Language"]);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();
}
}
这样,您就不必向公众公开整个web服务接口。在返回JSON之前,您有一个简单的方法“签出”用户
如果有未经身份验证的请求重定向到登录页面,则可能需要将此页面保留给未经身份验证的用户,因此,的签入代码已验证。未经身份验证的用户只会得到一个空的html页面,这可能会破坏javascript逻辑,因此请对此进行测试。在代码中使用ajax时,您应该假设服务的路径对所有人都是公共的。因此,您需要在Web服务中提供一些安全性。