【问题标题】:Silverlight and ASP.NET authorizationSilverlight 和 ASP.NET 授权
【发布时间】:2009-08-13 13:41:36
【问题描述】:

我的网站使用表单身份验证。我做了silverlight 3 模块,它被设计为在asp 的上下文中工作 - 经过身份验证的用户。 Silverlight 模块与由同一个 asp.net 网站托管的 WCF 对话,但问题是它无法对 WCF 服务进行身份验证。 我运行 Fiddler,我看到 .ASPXAUTH cookie 没有发送到 WCF 服务。 如何强制 Silverlight 从浏览器获取此 cookie 并将其发送到服务?

【问题讨论】:

    标签: asp.net wcf silverlight forms-authentication


    【解决方案1】:

    终于解决了。 丢失 cookie 的问题是由不正确的主机名造成的。 我正在向myhostname 发送asp.net 请求,但SL 正在使用myhostname.mylocaldomainnam.local 调用WCF。这就是 WCF 调用期间没有 .aspauth cookie 的原因。

    【讨论】:

      【解决方案2】:

      我已经成功使用了。首先,我确保有 ASP.NET 使用的 WCF AuthorizationService 的服务端点。然后使用 Silverlight 项目生成 AuthorizationService 的“服务引用”。最后,在您的模块中,您将使用该服务引用来使用存储在您的提供商中的访问者的凭据登录您的访问者。如果您有更多关于如何构建网站的信息,我或许可以为您的问题提供更简洁的答案。

      【讨论】:

      • 用户登录asp.net网站。然后他可以进入Silverlight模块。我不想让用户再次登录 Silverlight,我也不想将他的密码存储在任何临时位置(浏览器/会话)
      • 它们是一回事。登录到使用表单身份验证的页面将创建与使用 WPF 身份验证服务相同的 cookie。因此,登录到页面将允许通过 Silverlight,就​​像登录到 Silverlight 将允许通过 ASP.NET。顺便说一句,密码永远不会使用表单身份验证存储在任何地方。
      • 为什么我需要添加对身份验证服务的引用?我是否需要在 silverlight 客户端中从该服务调用任何功能(或配置某些内容)?
      • 如果我在 WCF 方法中明确设置 cookie (FormsAuthentication.SetAuthCookie(login, true);),那么一切正常。如果在 asp.net 应用程序中设置了 cookie,那么它对于 silverlight 是不可见的
      猜你喜欢
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 2020-04-11
      相关资源
      最近更新 更多