Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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 基于url登录和不登录的同一项目?_Asp.net_Web Config_Asp.net Membership_Login Control - Fatal编程技术网

Asp.net 基于url登录和不登录的同一项目?

Asp.net 基于url登录和不登录的同一项目?,asp.net,web-config,asp.net-membership,login-control,Asp.net,Web Config,Asp.net Membership,Login Control,我想根据输入的url设置带有login.aspx和不带login.aspx的web项目 比如说,如果有人访问www.mywebsite.com/A-可以在不登录的情况下进行搜索 but if accesses on www.mywebsite.com/B will be with login. 我将会话作为websiteID使用,但这会导致问题。网站ID正在相互碰撞 我这样做的原因是B方式不是公开的。它是为某些特定的人使用的,另一个

我想根据输入的url设置带有login.aspx和不带login.aspx的web项目

比如说,如果有人访问www.mywebsite.com/A-可以在不登录的情况下进行搜索

                             but if accesses on www.mywebsite.com/B  will be with login. 
我将会话作为websiteID使用,但这会导致问题。网站ID正在相互碰撞

我这样做的原因是B方式不是公开的。它是为某些特定的人使用的,另一个是公共的

这是一种糟糕的植入吗?我应该分成两个不同的web项目吗?我没有那样做,因为一切都一样,只是

不同之处在于搜索结果。因此,执行2次上载和维护2个项目是很麻烦的

web.config是另一个问题,因为我无法执行asp.net成员资格提供程序解决方案,同时它也会影响解决方案A

你有什么建议

聚苯乙烯;我听说只保护web.config中的特定目录。我该怎么做?这有帮助吗

编辑:两者都有相同的步骤aspx页面。登录后,我会被重定向到解决方案A也使用的默认页面。唯一的区别是querystring参数。这就是为什么如果将default.aspx作为这两个页面的第一个搜索页面,那么它的安全性将影响这两个页面。除非可以使用查询字符串参数进行安全保护,否则web.config中的安全路径将不起作用?我错了吗


非常感谢您的帮助。

您使用的体系结构非常正确,无需创建两个不同的应用程序。 关于需要登录的页面,请使用谷歌

'web.config中的位置路径', 您将获得完整的网页身份验证和授权解决方案

编辑->我不能发布网页认证和授权的解决方案,因为它太大了,希望通过自己的研发可以帮助您了解更多信息并找到合适的解决方案。


<location path="A.aspx">
    <system.web>
      <authentication mode="Forms">
        <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
      </authentication> 
    </system.web>
  </location>

这可能会有所帮助,我建议如下:将当前应用程序的两种不同解决方案配置部署到两个不同的IIS站点中。您可以维护相同的代码库,但在不同的web.config中使用不同的设置

您可以创建“预览”解决方案配置。在web.preview.config中,您将添加表单身份验证代码


您可以在此处找到更多详细信息:

您可以在代码隐藏中实现此功能。只需在default.aspx的页面加载过程中检查值websiteID(会话变量),并相应地更改搜索参数。
别忘了在Session\u start of Global.asax中为websiteID指定默认值,这样你就可以很容易地检查它是否通过登录进行了修改。

目前,我做了你所说的。但可能是用一种相当尴尬的方式。因为我保留了2个web.config文件(web.config和web.config2),并且根据发布的文件,我将名称切换为web.config。谢谢你的链接。我正在读。我刚刚读完这篇文章。这很好学,但我不确定它是否能帮助我,因为我不是在寻找测试/产品环境设置差异,而是我想为2个项目运行2 web.config(1个物理项目,正如我上面解释的那样)。我想你还不明白web.config转换并不局限于我在文章中使用的示例。可以在web.config中自动更改几乎所有内容。在我看来,两个已发布站点之间的唯一区别是发布位置和web.config?如果我的假设是正确的,那么使用web.config转换是你正确理解我的方式-2发布的网站2 config(如果可能的话,发布位置会很好,但我也可以发布)非常感谢你。我要试试你的解决办法。一个问题,是否可能只有网站发布或复制网站没有任何区别?我只看到它与网站发布事实上,你把我弄错了,或者我可能解释得不够充分。它们具有相同的step aspx页面。登录后,我会被重定向到解决方案A也使用的默认页面。唯一的区别是querystring参数。这就是为什么如果A.aspx是这两个页面的第一个搜索页面,那么保护它将影响这两个页面。我错了吗?