Asp.net mvc 3 即使已登录也无法访问(MVC 3身份验证)

Asp.net mvc 3 即使已登录也无法访问(MVC 3身份验证),asp.net-mvc-3,authentication,Asp.net Mvc 3,Authentication,我在web.config中写道: <authentication mode="Forms"> <forms loginUrl="~/en/Account/LogIn" timeout="2880" /> </authentication> 现在,当我运行该程序时——并尝试进入account info视图——它并没有将我带到那里,这很好。但是当我登录并尝试访问此视图时-它也不允许我访问该视图,这是多么糟糕 我这样做只是因为我想让登录的用户访

我在web.config中写道:

<authentication mode="Forms">
      <forms loginUrl="~/en/Account/LogIn" timeout="2880" />
    </authentication>
现在,当我运行该程序时——并尝试进入account info视图——它并没有将我带到那里,这很好。但是当我登录并尝试访问此视图时-它也不允许我访问该视图,这是多么糟糕

我这样做只是因为我想让登录的用户访问我的网站,而不是阻止他们。 我如何给他们访问权限

先谢谢你

解决


我需要在这个地方写url,就像这样:

<location path="~/en/Account/LogIn">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
</location>

而不是写在

这个网站是基于webmatrix的吗?如果webmatrix库在您的引用中并被使用,它将覆盖web.config中设置的URL。我需要在此处编写URL,如下所示:

<location path="~/en/Account/LogIn">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
</location>

而不是,写在

我的网站不是基于原始webmatrix的。如果我只是在/account/login之前添加/en,那没关系。。它还可以写什么?如果在它前面加上/en是什么意思。。你是说没有~?不,我是说在浏览器的url路径中。我想说的是,我在web.config中定义url的地方——我写了en/thing,但在程序运行时在浏览器中——没有这个/en。这不是完整的路径。我只是想将/en添加到浏览器获取部分url的位置,但我不知道它可以在哪里。上面的解决方案只是说允许每个人访问帐户/登录。通常在MVC中,这种方法是不受欢迎的,所有的安全性都应该在控制器级别。我看不出这对您的登录URL有什么影响,除非您同时使用[authorize]属性保护登录控制器?当然,我没有保护登录控制器,以便未登录的用户可以登录。事实上,这是我所知道的唯一一件事——一旦我做了这项运动——它就变得更好了。这很奇怪,因为这不是必需的。隐马尔可夫模型。。
<location path="~/en/Account/LogIn">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
</location>