如果未设置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?
答案 0 :(得分:1)
loginUrl
应该是将您带到登录视图的路径,就像您尝试通过Web浏览器导航到它一样。如果我猜它,那将是mywebsite.com/Account/Login。所以web.config中的相应代码是
<forms loginUrl="~/Account/Login" name=".ASPXFORMSAUTH">
</forms>
这将基于默认路线等。如果您的站点已修改路由和/或查看引擎覆盖,则可能会遇到不同的行为。
答案 1 :(得分:0)
我认为这里的问题是你在loginURL中引用了“Login.cshtml”,这是一个视图。在MVC中,您不会将用户路由到视图(在控制器中选择)。您必须将用户指向路径/ Controller / Action。正如在这里的另一篇文章中所提到的,如果你使用标准项目模板(指示应用程序根目录的代字号),那通常是“〜/ Account / Login”。