gpt4 book ai didi

asp.net-mvc - Silverlight、SSL、HTTPS、WCF、MVC 和表单例份验证

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:03 25 4
gpt4 key购买 nike

我有一个使用 Forms 身份验证的 MVC 3 网站。用户登录并导航到 Silverlight 5 应用程序。 Silverlight 应用程序正在另一个端口上调用 Silverlight-Enabled WCF 服务。因为我的要求之一是使用 Https/SSL,所以我决定将 WCF 服务移动到我的 MVC 应用程序中的“服务”文件夹中。

为了查看该服务是否正常工作,我输入了我的服务地址。我收到一条错误消息,指出我的服务需要匿名访问,但网站指定使用表单例份验证。因此,我在我的服务的 web.config 中删除了我的 mexHttpBinding,并将 authenticationScheme="Negotiate"添加到我的绑定(bind)的 httpTransport 中。 (我还没有到 https)。

现在,我收到 302 并被重定向到登录页面。看来我的服务提示我没有登录。所以,我添加了

routes.IgnoreRoute("{resource}.svc/{*pathInfo}");

routes.IgnoreRoute("Services/");

但这并没有什么不同。我认为服务说我没有通过身份验证,但我确定我是。

有人可以解释我做错了什么吗?

当我在我的本地主机上调试时,所有这些都有效,但当我部署到服务器时我无法访问该服务。

编辑

我可能已经找到答案了。我在 IIS 中为我​​的网站打开了匿名访问并将 httpTransport 的 authenticationScheme 更改为默认值(匿名)。然后我添加了

<authorization>
<deny users="?"/>
</authorization>

连同

<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

这似乎要求用户进行身份验证才能访问该服务。我现在要检查我的 silverlight 应用程序以确保它可以访问服务并获取/发布数据。这一切都在测试应用程序中,因此我必须相应地更改我的实际应用程序。然后,我将处理 ssl/https。

这一切听起来对吗?

编辑 2

我必须确保已启用 mex 并将 aspNetCompatibilityEnabled 设置为“false”,以便在我的 silverlight 应用程序中更新契约(Contract)。但是在更新我的服务之后,我将 aspNetCompatibilityEnabled 设置为“true”,一切似乎都正常工作。

我希望我仍然走在正确的道路上......

最佳答案

我最终设置了 IIS 以将 Web 服务添加为父网站下的网站。然后,我使用父站点的 web.config 中的 Location 标记在 web 服务上实现表单例份验证。

关于asp.net-mvc - Silverlight、SSL、HTTPS、WCF、MVC 和表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com