2009-05-19 89 views
0

第一次登录到我的Web服务时,我想使用FormsAuthentication,例如ASP.NET仅在第一次使用用户名和密码登录到Web服务

myService.ClientCredentials.UserName.UserName = "name"; 
myService.ClientCredentials.UserName.Password = "password"; 

但一旦用户登录到我的web应用程序,我不希望有知道他的密码,所以我想能够连接到Web服务作为该用户不知道他的密码。这可能吗?

+0

用户是通过浏览器直接访问WCF服务还是存在一层aspx页面? – 2009-08-13 16:36:15

+0

你曾经能够解决这个问题的地方?我遇到了和你一样的问题。 – 2011-12-27 23:35:56

回答

0

我会在任何前端访问Web服务时保存密码,然后在用户调用Web服务时将其传递到幕后。

因此,本质上,设计你的Web服务总是取一个密码,但是有前端缓存密码,所以一旦用户输入密码,前端不会再提问。

需要预先警告,保持密码缓存可能存在安全隐患,因为我相信这将成为会话的一部分。我不熟悉.net如何处理这个问题,但你可能想看看hashing

0

你应该可以做到这一点,但有几个问题需要考虑。基于表单的身份验证(FBA)通常使用cookie来跟踪身份验证。

  1. 安全 - 配置Web应用程序 和Web服务使用相同的FBA数据库。

  2. 域 - 只要Web服务 是在同一个域中的Web应用程序 ,Web服务可以使用 相同的身份验证cookie。如果 客户端禁用了Cookie,则此 可能无法正常工作。

  3. 曲奇到期 - 您需要在web.config文件配置 认证的持续时间以一种可接受的 时限(30分钟,1小时, 1天,或更多)。这 将允许用户在一个适当的时间框架内访问Web服务 他或她 已登录后。

0

您可以启用您的Web服务的会话。在服务声明的开始处添加一个简单的标记。

<WebMethod(True)> Method Name 
相关问题