C# 如何确保Webservice的安全性?
我有一个web应用程序(在VS2008 C#ASP.NET 3.5框架中)。在我的登录页面中有一个函数CheckLogin(),它执行登录功能。我使用了远程Web服务。objWeb是该web服务的对象。WebService\u CheckLogin是我的远程WebService中的一种webmethod。数据库连接字符串写在my WebService的类文件中C# 如何确保Webservice的安全性?,c#,asp.net,web-services,webmethod,C#,Asp.net,Web Services,Webmethod,我有一个web应用程序(在VS2008 C#ASP.NET 3.5框架中)。在我的登录页面中有一个函数CheckLogin(),它执行登录功能。我使用了远程Web服务。objWeb是该web服务的对象。WebService\u CheckLogin是我的远程WebService中的一种webmethod。数据库连接字符串写在my WebService的类文件中 public DataSet CheckLogin() { string username = Convert.
public DataSet CheckLogin()
{
string username = Convert.ToString(txtUname.Text);
string password = Convert.ToString(txtPassword.Text);
return objWEB.WebService_CheckLogin(username,password);
}
我的webservice中的Webmethod
[WebMethod]
public DataSet WebService_CheckLogin(string uname,string pswd)
{
c.connect();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("sp_verifyuser", c.con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Username", uname);
cmd.Parameters.AddWithValue("@Password", pswd);
c.getdataset(cmd, ref ds);
return ds;
}
public void connect()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
con.ConnectionString="Data Source=xxxxxxx;Initial Catalog=xx;User ID=xx;Password=xxxx";
con.Open();
}
我在webservice中的连接类
[WebMethod]
public DataSet WebService_CheckLogin(string uname,string pswd)
{
c.connect();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("sp_verifyuser", c.con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Username", uname);
cmd.Parameters.AddWithValue("@Password", pswd);
c.getdataset(cmd, ref ds);
return ds;
}
public void connect()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
con.ConnectionString="Data Source=xxxxxxx;Initial Catalog=xx;User ID=xx;Password=xxxx";
con.Open();
}
我的问题是‘根据安全规定有什么问题吗’?我的意思是‘有人能用我的网址访问我的网站服务吗’?我有许多其他webmethods,其中我将字符串作为参数传递,如
string profilePassword = objWEB.Verify_ProilePassword("exec sp_verify_profilepwd '" + txt_profil_pwd.Text + "','"+cid+"'");
问候,,
David这一切都取决于您如何保护您的WebMethods。您上面的代码可能会检查用户是否具有有效的用户名/密码组合,但很难从中判断您正在使用它做什么 为WebMethod创建并启用Session后,可以执行以下操作:
[WebMethod(EnableSession = true)]
public static string HelloWorld(){
if (User.Identity.IsAuthenticated)
{
return "Hello " + HttpContext.Current.Request.User.Identity.Name;
}
else
{
return "I don't talk to strangers";
}
}
请随时发布任何问题
另外-如果您对sp_verifyuser存储过程不小心,这样的调用可能会导致灾难:
WebService_CheckLogin("*","*")
@Greg…那么我的CheckLogin()应该是怎样的呢?