User.Identity.IsAuthenticated始终为True

时间:2012-06-28 07:30:25

标签: asp.net-mvc authentication web-config

有人能告诉我如何处理验证模式@ asp.net mvc 3吗? 我的webconfig没有标签认证的条目,因为我不知道哪种模式是可以容纳的!

参考标题:

我想要隐藏一些导航按钮@View,我尝试使用“if(User.Identity.IsAuthenticated)”,但这总是正确的,即使我没有登录(在网站上!)< / p>

有人有想法吗?

最好的问候

1 个答案:

答案 0 :(得分:5)

由于您从web.config中删除了<authentication>标记,这意味着您允许匿名访问您的网站。所以任何人都被认为是经过验证的。这就是IsAuthenticated始终为true的原因。

您需要启用要使用的某种身份验证。例如,如果您想使用Forms Authentication

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

因此,您必须首先决定的是如何管理用户和角色。你打算在哪里储存它们。一旦你决定了它,很容易使用内置的会员和角色提供者,或者如果它们不符合你的需要,可以编写自定义的。

我建议你从这里开始:http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-forms-authentication-cs