1

我有一个 .NET MVC3 应用程序和一个 WCF 服务。该应用程序要求所有用户都经过身份验证。

现在,我想从我的 WCF 服务中使用 WebClient 获取一个安全页面的内容。

服务和 Web 应用程序都运行在同一台服务器上,使用相同的 CNAME(不同的端口)。

我认为我可以创建一个这样的cookie:

Dim ticket = New FormsAuthenticationTicket(1, adAccount, DateTime.Now, DateTime.Now.AddMinutes(30), False, Nothing, FormsAuthentication.FormsCookiePath)

' Encrypt the ticket using the machine key
Dim encryptedTicket = FormsAuthentication.Encrypt(ticket)

' Add the cookie to the request to save it
Dim cookie = New HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)

我将 cookie 添加到请求中,但我仍然没有获得内容,因为我未经授权。

我认为可能是 FormsAuthentication 类属性设置不正确,所以我尝试"/"了代替FormsAuthentication.FormsCookiePath"".ASPXAUTH""代替FormsAuthentication.FormsCookieName. 它仍然不起作用。

有谁知道如何在我的 WCF 服务中创建一个有效的 cookie,以便我可以请求需要授权的 Web 应用程序的安全页面?

4

1 回答 1

0

我做了

Dim ticket = New FormsAuthenticationTicket(adAccount, False, 20)

反而

Dim ticket = New FormsAuthenticationTicket(1, adAccount, DateTime.Now, DateTime.Now.AddMinutes(30), False, Nothing, FormsAuthentication.FormsCookiePath)

它现在可以工作了......

于 2013-02-05T12:59:36.260 回答