我有一个 .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 应用程序的安全页面?