如何实现Web Service的认证?

broadury 2004-12-27 07:01:38
我现在做的Web Service都是可以在Windows应用程序发出SOAP请求,就可以返回值了。
如果我想实现身份认证,并且实现发送的信息加密,应该怎么做呢?
...全文
257 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
楠爵 2005-03-13
  • 打赏
  • 举报
回复
mark
lookie 2004-12-30
  • 打赏
  • 举报
回复
.Net Passpart 是将用户密码通过WebService发到一台服务器上,然后返回证书,用户凭着这个证书享受相关的服务。这样的话做起来就比较的麻烦
broadury 2004-12-30
  • 打赏
  • 举报
回复
To stillwaterrunsdeep:
Why,有更好的方法吗?
yuhongwei 2004-12-30
  • 打赏
  • 举报
回复
学习
stillwaterrunsdeep 2004-12-29
  • 打赏
  • 举报
回复
常规方法了。不过也不安全。
qozms 2004-12-29
  • 打赏
  • 举报
回复
在web service中,定义自己的SoapHeader

using System;
using System.Web.Services.Protocols;

namespace WSSecurity
{
/// <summary>
/// Summary description for AuthHeader.
/// </summary>
public class AuthHeader : SoapHeader
{
public string userName;
public string password;

public AuthHeader()
{
//
// TODO: Add constructor logic here
//
}
}
}



----------

[WebMethod]
[SoapHeader("myHeader")]
public string HelloWorld()
{
string returnValue = string.Empty;

if(myHeader.userName == "ok_name")
{
if(myHeader.password == "ok_password")
{
returnValue = "Hello World";
}
else
{
returnValue = "error password";
}
}
else
{
returnValue = "error userName";
}

return returnValue;
}



在webForm中

private void Button1_Click(object sender, System.EventArgs e)
{
localhost.Service1 ws = new localhost.Service1();

localhost.AuthHeader mySoapHeader = new localhost.AuthHeader();
// mySoapHeader.userName = "ok_name";
mySoapHeader.userName = "err_name";
mySoapHeader.password = "ok_password";
// mySoapHeader.password = "error_password";
ws.AuthHeaderValue = mySoapHeader; //



Response.Write(ws.HelloWorld());
}
qozms 2004-12-29
  • 打赏
  • 举报
回复
采用soap头认证
传输用户和密码时用ssl

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧