C# Web Service非Soap头(Session)身份验证方法

最近在做一个程序的Web Service,需要验证帐号才能使用Web Service提供的方法,首先想到把帐号信息附加在Soap头中传过去的方式,但在公司其他同事在使用非.net程序调用的时候发现有诸多不便。又Google了一镇子,发现一个使用Session的方式,说起来还是找“Web Service分段上传大附件”的时候看到的一个示例,难怪以前找Web Service验证的时候老找不到想要的结果。代码比较简单,主要代码如下:

/// <summary> 
/// 授权验证,在调用Web Service的时候先调用这个方法,调用完成后就像普通网站登录一样,只要Session不超时就不需要再次调用此方法了 
/// </summary> 
/// <param name="appName">程序名称</param> 
/// <param name="appAuthorizeCode">授权代码</param> 
/// <returns></returns> 
[WebMethod(EnableSession = true, MessageName = "授权验证")] 
public bool CheckAuthorize(string appName, string appAuthorizeCode) 
{ 
if (appName == "帐号名称" && appAuthorizeCode == "123456") 
Session["Login"] = true; 
else 
Session["Login"] = false; 
return (bool)Session["Login"]; 
} 
/// <summary> 
/// 添加档案,然后再调用 
/// </summary> 
/// <param name="model">档案实体类</param> 
/// <returns></returns> 
[WebMethod(EnableSession=true,MessageName="添加档案")] 
public string AddArchive(Model.Archives model) 
{ 
try 
{ 
if (Session["Login"] != null && Session["Login"].Equals(true)) //这里就是判断Session值,即有没有通过验证。每个方法前都需要判断下 
{ 
//以下代码为示例代码,可以根据需要放置自己的代码了 
BLL.Archives bll = new BLL.Archives(); //档案操作类的实例化 
if (bll.AddArchive(model)) //添加档案 
return "档案添加成功"; 
else 
return "档案添加失败"; 
} 
else 
return "未通过验证"; 
} 
catch (Exception err) 
{ 
return err.Message; 
} 
} 
/// <summary>
/// 授权验证,在调用Web Service的时候先调用这个方法,调用完成后就像普通网站登录一样,只要Session不超时就不需要再次调用此方法了
/// </summary>
/// <param name="appName">程序名称</param>
/// <param name="appAuthorizeCode">授权代码</param>
/// <returns></returns>
[WebMethod(EnableSession = true, MessageName = "授权验证")]
public bool CheckAuthorize(string appName, string appAuthorizeCode)
{
if (appName == "帐号名称" && appAuthorizeCode == "123456")
Session["Login"] = true;
else
Session["Login"] = false;
return (bool)Session["Login"];
}
/// <summary>
/// 添加档案,然后再调用
/// </summary>
/// <param name="model">档案实体类</param>
/// <returns></returns>
[WebMethod(EnableSession=true,MessageName="添加档案")]
public string AddArchive(Model.Archives model)
{
try
{
if (Session["Login"] != null && Session["Login"].Equals(true)) //这里就是判断Session值,即有没有通过验证。每个方法前都需要判断下
{
//以下代码为示例代码,可以根据需要放置自己的代码了
BLL.Archives bll = new BLL.Archives(); //档案操作类的实例化
if (bll.AddArchive(model)) //添加档案
return "档案添加成功";
else
return "档案添加失败";
}
else
return "未通过验证";
}
catch (Exception err)
{
return err.Message;
}
}

可以看到使用Session的方式来验证主要还是在于“EnableSession = true”这个属性。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索session
, 验证
, return
, 代码
, service
, login
, c#的session问题
, login替换c#
, messageName
session身份验证
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-09-05 13:43:13

C# Web Service非Soap头(Session)身份验证方法的相关文章

asp.net中几种常用的身份验证方法总结_实用技巧

前言 在B/S系统开发中,经常需要使用"身份验证".因为web应用程序非常特殊,和传统的C/S程序不同,默认情况下(不采用任何身份验证方式和权限控制手段),当你的程序在互联网/局域网上公开后,任何人都能够访问你的web应用程序的资源,这样很难保障应用程序安全性.通俗点来说:对于大多数的内部系统.业务支撑平台等而言,用户必须登录,否则无法访问和操作任何页面.而对于互联网(网站)而言,又有些差异,因为通常网站的大部分页面和信息都是对外公开的,只有涉及到注册用户个人信息的操作,或者网站的后台

OpenSSH的新身份验证方法:IBM支持的OpenSSH中的新特性

简介:本文讨论 OpenSSH 支持的一些身份验证方法.OpenSSH 是一种实现 SSH1 和 SSH2 协议的免费工具.通过本文您将了解 OpenSSH 中一些身份验证方法的配置以及 IBM 支持的 OpenSSH 版本中新增的特性. 简介 OpenSSH 是一种实现 SSH1 和 SSH2 协议的免费工具.它是一种安全可靠的工具,常常用来替代 r-commands.通过 ssh 会话的通信是加密的,它会加密所有通信流,包括密码. 本文描述如何配置基于主机的和 PAM 身份验证方法,以及在

VPN的身份验证方法

除了VPN的身份验证采用PPP的身份验证方法,下面介绍一下VPN进行身份验证的几种方法. CHAP:CHAP通过使用MD5(一种工业标准的散列方案)来协商一种加密身份验证的安全形式.CHAP在响应时使用质询-响应机制和单向MD5散列.用这种方法,可以向服务器证明客户机知道密码,但不必实际地将密码发送到网络上. MS-CHAP:同CHAP相似,微软开发MS-CHAP是为了对远程Windows工作站进行身份验证,它在响应时使用质询-响应机制和单向加密.而且MS-CHAP不要求使用原文或可逆加密密码.

java做RESTful Web Service(API)如何解决验证的问题

问题描述 由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法? 解决方案 解决方案二:REST服务的安全,一般依赖于HTTP认证,HTTP认证有几种:basic,digest,token,这些都有标准的实现的开源包需要主要的是这个认证的帐号跟你业务的帐户实际是不一样的,REST属于we

Ubuntu Server启用SSH多重身份验证方法

  大家都知道,SSH 默认是采用密码方式来进行身份验证的,即便你使用了 SSH 密钥来代替密码.由于还是单一因素的身份验证方式,一旦密钥泄漏,同样还是会危及到服务器安全. 为了解决这一问题,本文中我们将介绍如何启用 Ubuntu Server 的 SSH 多重身份验证(MFA,Multi-factor authentication).启用之后,在登录 SSH 时需要验证你绑定的计算机或手机等不同的验证因素才能登录成功.当然,多重身份验证的因素可以包括: 密码或安全问题 验证程序或安全令牌 指纹

ASP.NET Internet安全Forms身份验证方法_实用技巧

本文分别以ASP.NET1.1与ASP.NET2.0在Forms 身份验证上的实现方法,以及ASP.NET2.0较上一版本有哪些改进或变化进行说明.相信读者都己经看过许多类似这样的文章,不伦是在网上或是某些专业书籍上,最近又有模式&实践小组成员发布WCF安全模型指南,可见构建网站安全总是不过时的话题,作者认为此文也绝对是您应该收藏的参考资料. ASP.NET 安全性的工作原理 网站在安全性方面有一个常见的要求:特定的页面仅允许某些成员或其他经过身份验证的用户浏览.充分利用Forms身份验证是最好

[收藏]使用Reporting Services中的窗体身份验证

services 使用 Reporting Services 中的窗体身份验证发布日期: 8/18/2004 | 更新日期: 8/18/2004Microsoft Corporation 适用范围:Microsoft SQL Server 2000 Reporting Services 摘要:了解有关 Reporting Services 安全扩展方面的知识,着重学习窗体身份验证.此外,下载和部署 Reporting Services 的窗体身份验证扩展示例. 要安装示例代码,请下载 Forms

基于Token的身份验证——JWT

初次了解JWT,很基础,高手勿喷. 基于Token的身份验证用来替代传统的cookie+session身份验证方法中的session. JWT是啥? JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为: A.B.C A由JWT头部信息header加密得到 B由JWT用到的身份验证信息json数据加密得到 C由A和B加密得到,是校验部分 怎样生成A? header格式为: { "typ": "JWT", "alg": "HS25

[学习日记]对SOAP头内添加信息的验证,可实现对请求WEB服务进行身份验证。

首先,当然是发送的SOAP头里添加信息的方法了,前面有过记录,这里就不再写了可参见[学习日记]对SOAP请求的头添加内容的方法 那么这次向头内添加的信息为: dim proxy as GetHttpHeadersProxy=new GetHttpHeadersProxyproxy.AddHttpHeader("name","aowind")proxy.AddHttpHeader("pwd","123456") 接下来就是WEB