2012-02-21 30 views
1

我想设置我的web.config文件重定向到login.cshtml如果一个cookie未设置。我怎样才能做到这一点?我现在所拥有的还有一些我不明白的行为。我有:设置web.config文件,如果一个cookie设置

<?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?

回答

1

loginUrl应该是会带你到登录查看,因为如果你试图通过Web浏览器导航到它的路径。其中,如果我有猜测,会是像mywebsite.com/Account/Login。因此,web.config中的相应代码将为

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

这将基于默认路由等等。如果您的网站已修改路线和/或查看引擎覆盖,您可能会遇到不同的行为。

0

我觉得这里的问题是,你是在loginURL,这是一个视图引用“Login.cshtml”。在MVC中,您不会将用户路由到视图(在控制器中选择该视图)。您必须将用户指向路径/控制器/操作。如这里的其他帖子中提到,这通常是“〜/帐号/登录”,如果你使用标准的项目模板(波浪线表示应用程序根目录)。