1.增加一个业务服务
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
return $"Hello World";
}
else
{
return "Not authenticated.";
}
}
}
2.增加验证界面Login.aspx,实现登录验证的方法
例如:
protected void Button1_Click1(object sender, EventArgs e)
{
if (TextBox1.Text == "admin" && TextBox2.Text == "123456")//添加验证逻辑
{
System.Web.Security.FormsAuthentication.SetAuthCookie(TextBox1.Text, false);
Response.Redirect("WebService1.asmx");
}
else
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "onekey", "alert('Invalid username or password.')", true);
}
}
3.web.config增加配置
<?xml version="1.0" encoding="utf-8"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms name="MyService" loginUrl="Login.aspx"/>
</authentication>
<authorization >
<deny users="?"/>
</authorization>
<roleManager enabled="true" cacheRolesInCookie="true" />
</system.web>
</configuration>
4.运行演示
请求~/WebService1.asmx
验证身份
验证不通过
验证通过
5.备注
如果是部署在iis上