【问题标题】:Setting web.config file to check if a cookie is set设置 web.config 文件以检查是否设置了 cookie
【发布时间】:2012-02-21 18:43:37
【问题描述】:

如果未设置 cookie,我想将我的 web.config 文件设置为重定向到 login.cshtml。我怎样才能做到这一点?我现在也表现出一些我不理解的行为。我有:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="Login.cshtml" name=".ASPXFORMSAUTH">
            </forms>
        </authentication>
        <authorization>
             <deny users="?" />
        </authorization>
    </system.web>
</configuration>

正在发生的事情是用户被重定向到

"Account/Login ReturnUrl=%2fdefault.cshtml"

所以 default.cshtml 正在呈现,其中有一个奇怪的登录页面集中放置在其中?这可能与我的程序结构有关,但我真的不明白什么叫可以呈现这个奇怪的 HTML?

【问题讨论】:

    标签: c# asp.net html web-config authorization


    【解决方案1】:

    loginUrl 应该是将您带到登录视图的路径,就像您试图通过网络浏览器导航到它一样。如果我猜的话,应该是 mywebsite.com/Account/Login。所以 web.config 中对应的代码是

    <forms loginUrl="~/Account/Login" name=".ASPXFORMSAUTH">
    </forms>
    

    这将基于默认路由等。如果您的站点修改了路由和/或视图引擎覆盖,您可能会遇到不同的行为。

    【讨论】:

      【解决方案2】:

      我认为这里的问题是您在 loginURL 中引用“Login.cshtml”,这是一个视图。在 MVC 中,您不会将用户路由到视图(在控制器中选择)。您必须将用户指向路径/控制器/操作。正如此处另一篇文章所述,如果您使用标准项目模板(波浪号表示应用程序根目录),通常是“~/Account/Login”。

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 1970-01-01
        • 2021-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        相关资源
        最近更新 更多