Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 子域需要MVC应用程序终结点身份验证_Asp.net Mvc 3_Authentication_Windows Server 2008 R2 - Fatal编程技术网

Asp.net mvc 3 子域需要MVC应用程序终结点身份验证

Asp.net mvc 3 子域需要MVC应用程序终结点身份验证,asp.net-mvc-3,authentication,windows-server-2008-r2,Asp.net Mvc 3,Authentication,Windows Server 2008 R2,我有一个c#.netMVC3应用程序运行在windowsserver2008r2数据中心上 如果我将应用程序作为一个应用程序部署在主站点下(即www.mysite.com/crm),它将非常有效 如果我将应用程序作为子域部署到主站点(即crm.mysite.com),除了一个端点(crm.mysite.com/reports/view)之外,它似乎可以正常工作。该路径返回以下身份验证通知: Authentication Required The server http://crm.mysite.

我有一个
c#.net
MVC3
应用程序运行在
windowsserver2008r2数据中心上

如果我将应用程序作为一个应用程序部署在主站点下(即
www.mysite.com/crm
),它将非常有效

如果我将应用程序作为子域部署到主站点(即
crm.mysite.com
),除了一个端点(
crm.mysite.com/reports/view
)之外,它似乎可以正常工作。该路径返回以下身份验证通知:

Authentication Required
The server http://crm.mysite.com:80 requires a username and password.
我不知道该端点有什么特别之处,正如我所提到的,它在主站点下部署时不会出现问题

这是什么原因造成的?如何删除/防止它

我甚至不知道提供什么代码来帮助诊断问题。如果您想查看与此问题相关的任何部分的部分代码,请告诉我

更新

在这两种情况下,我都不会移动应用程序文件的路径,它们都使用相同的应用程序池。唯一的区别是用户如何通过
IIS
访问文件

更新2

如果对用户进行身份验证,则会出现以下错误:

Server Error in '/Reports' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

如果资源确实存在,它为什么会认为资源不存在?

如果你在主站点上有身份验证,它不会自动将身份验证传递到子域。您必须开发一种机制来处理这种情况,例如SSO(单点登录)


另一个潜在问题是目录/应用程序的权限(例如,
c:\inetpub\wwwroot\crm.mysite.com

应用程序具有身份验证,用户必须在执行任何操作之前进行身份验证。这意味着所有其他视图都得到了正确的保护并正常工作,那么为什么这一个端点会丢失身份验证?如果他们在www.mysite.com/crm上登录,身份验证cookie将不会转移到crm.mysite.com。用户必须重新验证。我不更改文件的实际路径,只更改通过IIS访问它们的方式。
crm.mysite.com/…
的所有路径重定向到登录名
crm.manex.com/login
。一旦用户通过身份验证,他就可以访问除
/Reports/View
之外的所有内容。这两个站点是否在同一个应用程序池中运行?如果没有,则可能是您必须授予“新建”应用程序池对该目录的权限。